在珠排序最下面的那个列出了一些其他的排序算法的地方点了几个,没找到类似的:
https://en.wikipedia.org/wiki...
不过我英文挺差的,可能是漏掉了。另外我因为懒没全点开看,前五行感觉不能有就没点开,只把后四行的全点开了。
两个一位数的排序:
待排序的第一个数 排序后的第一个数|0 0|0 0|1 0|1 1
带排序的第二个数 排序后的第二个数|0 0|1 1|0 1|1 1
映射的时候直接将 10 映射成 01。其他类似。
两个二位数的排序:
00 00|00 00|00 00|00 00|01 00|01 01|01 01|01 01|10 00|10 01|10 10|10 10|11 00|11 01|11 10|11 11
00 00|01 01|10 10|11 11|00 01|01 01|10 10|11 11|00 10|01 10|10 10|11 11|00 11|01 11|10 11|11 11
映射的时候直接将 1001 映射成 0110。其他类似。
四个四位数的排序需要的存储空间是 128 KB。2^(4*4)*(4*4)/8。不知道我算得对不对。
八个八位数是 134217728 TB。
这个直接用硬件实现芯片的面积随待排序的元素个数和位数的积的增加会非常快吧?所以就算用硬件实现时间复杂度也很高吧?另外这个是不是没法并行?这个算法是不是不实用?