php专区

 首页 > php专区 > PHP进阶 > 算法 > 一个优化的堆排序

一个优化的堆排序

分享到:
【字体:
导读:
         摘要:如何生成m个随机数?看了编程珠玑的文章,知道了一些,后来又在csdn上发现了其他人设计的。如果没有头绪,那就按平常来说就是随机生成一个数,然后比较集合中是否存在,不存在放里面,否则再继续生成。每次按降序提取元素,这样建立从右到左的有序序列。n-1次siftup和siftdown,每个操作最多O(logn),故时间是O(...

一个优化的堆排序

如何生成m个随机数?看了编程珠玑的文章,知道了一些,后来又在csdn上发现了其他人设计的,我就拿来说说吧。如果没有头绪,那就按平常来说就是随机生成一个数,然后比较集合中是否存在,不存在放里面,否则再继续生成。按珠玑上所言,那就是 psuedo :

select =m;
remaining =n;
for i=[0..n]
  if(bigrand()%remaining)