请大家帮忙解决一个大批量数据排序的问题!(100分)

  • 主题发起人 raulcool
  • 开始时间
R

raulcool

Unregistered / Unconfirmed
GUEST, unregistred user!
我这学期刚开始学习delphi编程,现在要做一个大批量数据排序的作业,老师先给我们提供一个方法:将数据分为若干分,分别排序后再合并。
希望大家能提供一个更加高效的办法,只要有大致的思路就行。本人是初学者,请多多关照!
 
N

njuzgc

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么不用spss软件做啊?
 
R

raulcool

Unregistered / Unconfirmed
GUEST, unregistred user!
上的是delphi的课,当然要用delphi编啦!!
 
F

fas2000

Unregistered / Unconfirmed
GUEST, unregistred user!
这个不是有很多排序法吗/
啥冒泡排序法等等
要是我啊,最快的方法就是先导入到数据库中,然后再order by 就出来了,那个速度
比啥都快
 
R

raulcool

Unregistered / Unconfirmed
GUEST, unregistred user!
就目前的计算机速度而言确实很快,但这题目的目的显然不是这个啊!!重要的是想出一种新方法!
 
L

lover4936

Unregistered / Unconfirmed
GUEST, unregistred user!
你看一用多线程来处理怎么样
 
L

lover4936

Unregistered / Unconfirmed
GUEST, unregistred user!
其实编程的时候很多的方法都来自于现实中,你可以用多线程处理,你就想一下你要打牌的时候进行分牌怎么分的!我是指排序的分牌
你可以这样子实现做一个数组,但是数组的下标的数值不是按差值一来排列,比如我们一般的时候都是A[1],A[2],你可以设成A[1] ,A[10],用多线程进行插值,如果有数字介于A[1],A[10].之间的,你不要将这个数值放到A[2]里放到10-1/5取整的下标里,放不在再进行扩大,至最后的话再将无数值的去掉,整合,这种方法只适合于数据较多的排序进行。
 
G

gulang

Unregistered / Unconfirmed
GUEST, unregistred user!
是让你们想新的算法还是可以借鉴典型的排序算法?如果想新的高效率算法的话,难啊,如果真能想出比现在排序算法还好的来,你可以直接进中科院了。[:D]祝你好运!
 
R

raulcool

Unregistered / Unconfirmed
GUEST, unregistred user!
能不能把多线程的方法说的详细点,我是初学者,比较难理解·····
 
R

raulcool

Unregistered / Unconfirmed
GUEST, unregistred user!
还有一个问题,就是要提高文件合并的效率,如果把数据分为十个文件,其中的九个已经合并好了,当要和最后一个文件合并的时候,如果按照普通的方法,效率会很低,有没有可以提高效率的办法???多谢了!!
 
L

lps

Unregistered / Unconfirmed
GUEST, unregistred user!
楼主如果学过《数据结构》,建议找出你的教材来复习一下。如果没有学过赶紧去找本书看一下(推荐清华大学 严蔚敏的,经典啊!)
如此,比你在这问一百天都强
 
J

jenhon

Unregistered / Unconfirmed
GUEST, unregistred user!
看半天,都不知道楼主需要什么?
要程序?还是要 算法?
排序这么经典的东西,该有的算法也已经有了,看书就行,况且:“师先给我们提供一个方法:将数据分为若干分,分别排序后再合并。”这个算法已经规定死了吧?

我建议你还是问比较详细点好,比如,我打算用什么什么算法实现什么内容的排序,给些语句之类的问题,还是比较多人乐意回答的,毕竟要求比较具体、详细。
 
R

raulcool

Unregistered / Unconfirmed
GUEST, unregistred user!
我想要的就是有没有比老师提供的方法更好的排序方法,还有就是在文件合并是能不能更高效???
 
I

iamy

Unregistered / Unconfirmed
GUEST, unregistred user!
折半插入
 
J

jenhon

Unregistered / Unconfirmed
GUEST, unregistred user!
排序的方法各有千秋,没有最好的只有最适合的。
如果要找出真正合适的算法,可能还要结合你的具体情况:数据的数值范围,分布情况,重复的频繁性.....
不过楼上也有人说了,如果能找到一个新的算法有效的,就算是应用范围有限,也都估计能进中科院了,因为估计你能想到的,前人都想到了。
 
D

design1

Unregistered / Unconfirmed
GUEST, unregistred user!
好问题,先顶起
 
M

mosker

Unregistered / Unconfirmed
GUEST, unregistred user!
可以考虑使用MMX指令进行单指令多数据流处理,排续算法还是用快速排序法好了.
MMX指令应用请参考我的blog...
.http://blog.csdn.net/codegame
 
L

levi

Unregistered / Unconfirmed
GUEST, unregistred user!
楼主的问题太笼统了, 大批量数据的排序, 要加快速度,你指的是提高程序运行的效率,还是提高算法的效率?
目前来讲,具有可比性的只有算法效率, 程序的运行效率除了算法效率外,还跟硬件有关。
 
N

nicai_wgl

Unregistered / Unconfirmed
GUEST, unregistred user!
[:)]可以使用TList中的Sort方法,一个回调函数,需要编写比较的逻辑,但排序部分就不需要写了。
 
顶部