簡單的算法問題?(100分)

數據寫入到ListView中
要將其中數據排序,記錄>10000的
排序的列也是整型數據來的
 
你毛病啊放整数数组到ListView中!晕.
 
to:Kisber
你才有毛病[:(!][:(!]
整數數組,隻有一個數組我還用得著這樣做嗎?

再說了,即使就隻有一個數組,我放在listView裡面也有原因的,想問題都不知道你怎麼考慮的
>>排序的列也是整型數據來的
這一句就很明顯就是根據其中一列排序了

簡單跟你說吧,就是將listView裡面數據按某一列(整型數)排序,懂不懂
 
晕死!
一个Integer是4Bytes,一个ListItem是一个对象,每个对象它的指针就占用了4Bytes,
它的实际数据呢?!
而你要对10000个ListItems进行排序,不慢才怪呢!
如果你用的还是瘟98的话,单单那10000个ListItems就能让你的程序象跑蜗牛一样,这样
的设计,我看不到它的好处。
 
to:Kisber
不管用什麼,10000個記錄都不怎麼快的
況且這些數據又不是數據庫裡面的,又要實現可以排序,那你說應該改用什麼最好[?][?]
 
楼主:
  我刚刚试了,10000条Integer用快速排序法仅用了1.072秒!
难道楼主觉得两秒太慢了?那你的要求也太高太过分了吧。
 
to:Kisber
>>10000条Integer用快速排序法仅用了1.072秒!
你所說的快速排序法能不能提供代碼,我試試看

我主要的目的是將ListView裡面的數據排序,我隻是求最快的算法
因為我用最簡單的算法的時候,排序10000行的時候就比較慢了

 
我覺得用“冒泡排序法"比較快
 
to:luky_99
代碼怎麼實現?就排一個數組吧,容易一點
 
10000個數
你要分析 这些数的规律 才能 找的好的方法

是否在特定范围内 //(1..2的整数)//夸张了一点//我估计你一眼就看出最好的算法
是否在特定范围内 //(1..100的整数) 你可以写一个自己的算法
 
to:hfghfghfg
1..100000
 
你的系统是繁体的吗,[:D]
 
冒泡法效率很差的。
建议使用Quick Sort.
提供一个思路:
先随便取一个数,然后把此数大的全放到后面,小的放到前面,然后在前面一部分、后面一部分
再分别各取一个数,递归调用此函数。

此方法非常快,特别是原来的数是无规则的(越是无规则越是快)
 
不好意思,没看到前面已经有人贴了QuickSort了。
 
楼主:
  快排算法就是他们贴给你的 QuickSort 啊!
  其实 QuickSort 在 Delphi VCL 里有,你可以自己打开来看看。
 
是什么类型的数据。长度固不固定。
如果定,可用基数较好。归并也可。都是 nlogn
 
多人接受答案了。
 
呵呵,结贴啦楼主。
我对排序自诩研究得比较多吧,如果你不介意,你可以把你的 ListView 发给我,我帮
你找个最佳算法出来。
顺便做个广告:我的邮箱在我的主页里有 http://kisber.yeah.net/
 
顶部