那种排序速度最快,详解一下(附标程)如题 谢谢了

作者&投稿:线疤 (若有异议请与网页底部的电邮联系)
归并排序 标程~

type element=array[0..10001]of integer;
var arrhead,arrend:longint;
n,i:longint;
a:element;

procedure merge(var a:element;x,y,z:longint);
var temp1,temp2:element;
lengthA,lengthB,i,j,count:longint;

begin
for i:=x to y do temp1[i-x+1]:=a[i];
for j:=y+1 to z do temp2[j-y]:=a[j];
lengthA:=y-x+1;
lengthB:=z-y;
i:=1; j:=1; count:=x-1;
while (i<=lengthA)and(j<=lengthB) do
begin
inc(count);
if temp1[i]>temp2[j] then begin a[count]:=temp2[j]; inc(j); end
else begin a[count]:=temp1[i]; inc(i); end;

end;
if i>lengthA then for i:=j to lengthB do a[count+i-j+1]:=temp2[i]
else for j:=i to lengthA do a[count+j-i+1]:=temp1[j];
end;

procedure sort(var a:element;x,y:longint);
var mid:longint;
begin
mid:=(x+y) div 2;
if midx then sort(a,x,mid);
if mid+1y then sort(a,mid+1,y);
merge(a,x,mid,y);
end;

begin
read(n);
for i:=1 to n do read(a[i]);
arrhead:=1;
arrend:=n;
sort(a,arrhead,arrend);
for i:=1 to n do begin write(a[i],' '); if i mod 5=0 then writeln; end;
end.

哈希表+指针+随机数,我想能做成,怎么组织了?大家一起分析析!

如果说速度最快,应该是“基数排序法”(radix sort)。不过这种排序算法使用范围有限。 基数排序法又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的比较性排序法。 解法 基数排序的方式可以采用LSD(Least sgnificant digital)或MSD(Most sgnificant digital),LSD的排序方式由键值的最右边开始,而MSD则相反,由键值的最左边开始。 var a:array[0..100]of longint; min,max,n,i,tmp:longint; begin fillchar(a,sizeof(a),0); min:=maxlongint; max:=-min;//max和min是数字的最大和最小边界。 readln(n); for i:=1 to n do begin read(tmp); inc(a[tmp]);//tmp的出现次数+1 if tmp>max then max:=tmp; if tmp<min then min:=tmp; end; for i:=min to max do while a<>0 do begin//如果i这个数字还没有打印完,就继续打印 dec(a);//把i打印并且次数-1. write(i,' '); end; writeln; end.


冒泡排序法和快速排序比较的算法
在比较了Quicksort的几种实现方案后,我们着手创建自己的Quicksort算法。在这篇文章中描述了我们如何设计出一个比这个算法的其他实现要更为清晰,速度更快以及更为健壮的新函数——部分原因是由于这个函数的代码更为短小。Gordon Bell的名言被证明是正确的:“在计算机系统中,那些最廉价,速度最快以及最为可靠的组件是不...

...排序算法有哪些,各有什么特点?举例结合一种排序算法并应用数组进行...
排序是数据处理中经常使用的一种重要运算,在计算机及其应用系统中,花费在排序上的时间在系统运行时间中占有很大比重;并且排序本身对推动算法分析的发展也起很大作用。目前已有上百种排序方法,但尚未有一个最理想的尽如人意的方法,本章介绍常用的如下排序方法,并对它们进行分析和比较。1、插入排序(直接插入排序、折半...

关于快速排序和归并排序的时间复杂度
”随机化快速排序的唯一缺点在于,一旦输入数据中有很多的相同数据,随机化的效果将直接减弱。对于极限情况,即对于n个相同的数排序,随机化快速排序的时间复杂度将毫无疑问的降低到O(n^2)。解决方法是用一种方法进行扫描,使没有交换的情况下主元保留在原位置。综合来说快速排序速度最快,时间复杂度最...

什么是快速排序,
快速排序是平均速度最快的排序方法,思想如下:每趟选中一个元素,并把这个元素插入到它的正确位置,也就是说每趟排完之后,选中元素的左边都小于它,右边元素都大于它。然后 再分别对其左边部分和右边部分进行快速排序。排序函数如下 \/*排序函数*\/ \/*入口参数:数组,数组起始元素下标,末端元素下标*\/...

文件夹内的文件如何按时间排序?
在网上下载了一个文件,但是放在什么地方忘记了。如何快速找到这个文件呢?按时间排序是一个不错的选择。下面我们就讨论一下如何将文件夹内的文件按照时间先后进行排序,以便最快的速度对数据进行查找、操作。本次演示以电脑中D盘文件为例进行演示。打开我的电脑---D盘。进入后可以看到D盘根目录的文件。点...

计算机二级ms office高级应用基础知识
在最坏情况下,对长度为n的线性表排序,冒泡排序需要比较的次数为n(n-1)\/2。 快速排序:是迄今为止所有内排序算法中速度最快的一种。它的基本思想是:任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一趟排序,将待排元素分为左右两个子序列,左子序列元索的排序码均小于或等于基准元素的排序码,右...

猫狗人,按照反应速度怎么排序?
1. 研究表明,在猫、狗、人三者中,狗的反应速度最快,其次是猫,人类的反应速度最慢。2. 狗的神经系统高效,能够迅速接收和处理信息,这使得它们在反应速度上表现出色。3. 狗天生的狩猎和牧羊本能,需要它们快速反应以追踪和捕捉猎物,因此它们的反应速度非常快。4. 猫的反应速度虽然略逊于狗,但...

...表和排序后的列表中找一个元素,哪个查找速度最快? 最简洁的答案是什...
当然本题可以利用别的方法解决,所以选取了速度最快的快速排序+二分查找,让这两种方法作效率对比。我们假定 |A|=|B| ,对于随机生成的数据,计算程序重复运行50次所用时间。对比表格如下: 哈希表(sec) 快速排序+二分查找(sec)复杂度 O(N) (只有忽略了冲突才是这个结果。当然实际情况会比这个大,但是重复的几率...

关于快速排序算法的稳定性是什么?
快速排序算法的稳定性是什么:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。对于不稳定的排序...

猫狗人,按照反应速度怎么排序?
按照反应程度的排序是:猫的反应速度最快,狗次之,人的反应速度最慢。猫的反应速度大概是人的2-3倍,是狗的一倍多。猫的反应速度之所以这么快,是因为猫的视网膜上有两种主要的感光细胞:视锥细胞和视杆细胞。视锥细胞是颜色感受细胞,负责感知色彩,我们人类视网膜上大约有1.2亿视杆细胞,和6百万...

奉节县19530832492: 那种排序速度最快,详解一下(附标程)如题 谢谢了 -
泷轮抗力: 如果e69da5e887aae799bee5baa631333335323466说速度最快,应该是“基数排序法”(radix sort).不过这种排序算法使用范围有限. 基数排序法又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素...

奉节县19530832492: 数组排序请教!!!!!! -
泷轮抗力: 下面是常见排序算法的速度比较:(从慢到快)1、冒泡排序O(N^2)2、简单选择排序O(N^2)3、直接插入排序O(N^2)4、折半插入排序O(N^2)5、希尔排序,近似为O(N^1.25) (尚无定论,但可以确定是N~N^2之间的多项式时间复杂度)6、堆...

奉节县19530832492: 下面排序算法在输入数据逆序情况下排序速度最快 A归并排序 B直接插入排序 C冒泡排序 D简单选择排序 -
泷轮抗力: A归并排序 时间复杂度O(nlogn) 逆序输入冒泡和直接插入最坏情况 时间复杂度O(n^2) 简单选择排序与输入顺序无关 时间复杂度O(n^2)

奉节县19530832492: 什么排序的速度(时间复杂度)最快? -
泷轮抗力: 从时间复杂度看,所有内部排序方法可以分为两类.1.插入排序 选择排序 起泡排序 其时间复杂度为O(n2);2.堆排序 快速排序 归并排序 其时间复杂度为O(nlog2n).这是就平均情况而言的,如果从最好的情况考虑, 则插入排序和起泡排序的时间复杂度最好,为O(n), 而其他算法的最好情况同平均情况大致相同.如果从最坏的情况考虑,快速排序的时间复杂度为O(n2),插入排序和起泡排序虽然同平均情况相同,但系数大约增加一倍,运行速度降低一半,而选择排序、堆排序和归并排序则影响不大.总之, 在平均情况下,快速排序最快; 在最好情况下,插入排序和起泡排序最快; 在最坏情况下,堆排序和归并排序最快.

奉节县19530832492: 对大量数据排序,多种排序方法中,哪种最快,效率最高 -
泷轮抗力: 直接选择排序>快速排序>基数排序>归并排序 >堆排序>Shell排序>冒泡排序=冒泡排序2 =直接插入排序

奉节县19530832492: 排序算法中目前最快的是哪种? -
泷轮抗力: 快排、堆排序...

奉节县19530832492: 哪一种排序方法最快? -
泷轮抗力: 首先,对大多数包含排序应用的程序来说,排序算法的速度并不重要,因为在程序中排序 的工作量并不是很多,或者,与排序相比,程序中其它操作所花费的时间要多得多. 实际上,没有哪一种排序算法永远是最快的,在运行程序的软硬件环境相同的情况下,不同排序算法的速度还与数据的长度、性质以及数据的初始顺序有关.

奉节县19530832492: 3. 对下列关键字序列用快速排序法进行排序时,速度最快的情形是: -
泷轮抗力: 所以说第一位的值的位置更靠中间(排序好的)、所以应该是选A、

奉节县19530832492: JAVA中有哪几种常用的排序方法 -
泷轮抗力: 1、冒泡排序 冒泡排序是一个比较简单的排序方法.在待排序的数列基本有序的情况下排序速度较快.若要排序的数有n个,则需要n-1轮排序,第j轮排序中,从第一个数开始,相邻两数比较,若不符合所要求的顺序,则交换两者的位置;直到第...

奉节县19530832492: 插入排序,快速排序哪个更快? -
泷轮抗力: 当数据量小于1000时相差很小.当数据量大于10000时,数据量越大,差别越明显.是快速排序速度快.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网