使用位图法进行排序和查找
如何在1MB的空间里面对一千万个整数进行排序?并且每个数都小于1千万。实际上这个需要1.25MB的内存空间(这里所说的空间是考虑用位图表示法时,每一位代表一个数,则1千万/(102410248) 约为1.25MB )。先来随机生成[0, n)之间不重复的随机数(关键思想为:先把所有可能数顺序放到数组,然后打乱顺序,则保证不重复)排序for (i = 0; i < n; ++i)
a[i] = i;
for (i = 0; i < n; ++i){
p... 阅读全文