level 1
有史以来最快的排序方法,经大量实验证明,速度远远超过快速排序我们不妨称之为折半插入排序方法:数据写入时即已经开始排序,输入完便已经排完序了。读入第一个数,作为一个二叉树的根然后每读入一个数,便从根开始比较,如果比根小就和根的左子叶比较,如果比根大就和根的右子叶比较,然后再向左或向右,依此循环,直到子叶为空时,把这个子叶连接到输入的数上。读取的时候,只需用中序遍历(一直向左走,打印,向右走一步,在一直向左,打印,向右走一步。。。。。)便将数排好序输出了。这种方法,并不是将输入的数与所有的数比较,所以比普通的插入法更快,由于每进入一个子叶便相当于将数列折半,但是不用每次折半都重新搜索一便,于是比快速排速快。事实证明:100个100以内的随机数,比较,交换和创立新节点都记一次数泡沫等5000多次,快速排序约800-900次,而折半插入排序仅需600-700次!!!
2005年07月28日 06点07分
1
level 0
这不是堆排序法吗?但我听说,不如快速排序法快。但是优点是不用递归。
2005年07月28日 12点07分
2
level 0
这个排序你自己弄的吧?你知道不知道,如果用2叉数表示要比浪费很大的存储开销么?,而且在读取的时候,又不是每次都需要把所有的数都读出来,比如说我要有10000个数,已经像你这样排好了序.现在我要知道第1000数是什么,这个时候按你的存储,难道去遍历一遍?这多慢啊.你可以说先把你的排好序的2叉数放到数组里面,但是如果是这样,你的读取和赋值又是要浪费很大的时间开销的.你这种方法根本行不通,速度和快速排序是没法比的
2006年01月03日 06点01分
4
level 1
二叉树的方法吧,不过速度远远超过快速排序这句话不敢苟同。其实这种算法还可以继续改进为平衡二叉树,速度和快速排序是一个数量级的。
2006年01月03日 14点01分
5
level 0
这不是二叉排序树吗?折半插入哪是这个样子?另外谁说堆积慢?堆积的时间效率是O(nlogn)跟快速排序时间效率是一样的。
2006年01月04日 08点01分
6
level 0
奶奶的,我都看不下去了,这个想法本来就是错误的,得不到正确结果,鉴定完毕
2007年11月12日 13点11分
10
level 0
你不晓得什么计数排序。基数排序,桶排序所,你说的这是个马
2007年11月12日 13点11分
11
level 0
楼主错了,你的排序方法没任何价值.另9楼的明显内心阴暗.
2007年11月12日 14点11分
12
level 0
不知道搂主有什么好惊讶的……二叉树排序……不加平衡树优化很有可能超内存……加了平衡树优化,一是慢了,而算法复杂度远远超过快排……
2007年11月13日 07点11分
13