请问个算法

请教个算法
两个线性表A,B,A,B都无序,A比较大(5W左右),B是A的子集,比较小(5K以下),现在要快速确定B中每个元素在A中的顺序,有什么好算法

------解决方案--------------------
带连接的散列。
1、先将一个散列表全部赋0
2、将B中的元素散列,对应位置赋1,并在散列表中记录在B中的位置
3、对A散列,若对应的散列表所在位置为1,那么……自己想吧

就是这样,复杂度O(m+n)
------解决方案--------------------
无序就这样了
------解决方案--------------------
哈希就是空间换时间,如果想剩点空间可以用二叉排序树,不过时间复杂度要上升到log级别,如果一点辅助空间都不用的话,就得是m*n的复杂度。如果A特别特别的大,又想省点空间的话,那可以考虑布隆过滤器。
------解决方案--------------------
这个条件不明确,还要看场景,比如是否重复,是否顺序……
------解决方案--------------------
5k-的话排序下,m*log(n)完全可以接受了
------解决方案--------------------
对上面做一点补充,可以将hash表的大小设为B的大小,A散列时越界的可以不用管