Ⅰ 各种排序算法的比较
小朋友啊,你这不是问题是作业啊。
Ⅱ 排序算法比较问题
其实最快的是树形选择排序(也叫锦标赛排序),如果没有,则堆排序要好些
因为快速排序和基数排序可以类比地说是批量操作,找出前10名和5000名的时间差别不大
而堆排序建立好初始堆后,只需要最多log2n就可以找到一个
Ⅲ 排序算法比较
有问题Google一下!或网络一下!哈哈
Ⅳ 、题目:各种排序算法实现和比较
给个联系方式。我发给你!!!
Ⅳ 几种排序算法效率的比较
插入排序,选择排序,交换排序(冒泡),数据结构书上有详细的介绍
以下是直接插入排序,选择排序,希尔排序,冒泡排序的算法
/*直接插入排序的基本思想是:顺序地把待排序序
列中的各个记录按其关键字的大小,插入到已排
序的序列的适当位置。
*/
void InsertSort(elemtype x[], int n)
{
int i,j;
elemtype s;
for(i=0;i<n-1;i )
{
s = x[i 1];
j = i;
while(j>-1 && s.key<x[j].key)
{
x[j 1] = x[j];
j--;
}
x[j 1]=s;
}
}
/*选择排序的基本思想是:不断从待排序的序列中
选取关键字最小的记录放到已排序的记录序列的
后面,知道序列中所有记录都已排序为止。
*/
void SelectSort(elemtype x[], int n)
{
int i,j,Small;
elemtype Temp;
for(i=0;i<n-1;i )
{
Small = i;
for(j=i 1;j<n;j )
{
if(x[j].key<x[Small].key)
Small = j;
}
if(Small!=i)
{
Temp = x[i];
x[i] = x[Small];
x[Small] = Temp;
}
}
}
/*希尔排序的基本思想是:不断把待排序的记录分
成若干个小组,对同一组内的记录进行排序,在
分组时,始终保证当前组内的记录个数超过前面
分组排序时组内的记录个数。
*/
void ShellSort(elemtype x[], int n, int d[], int Number)
{
int i, j, k, m, Span;
elemtype s;
for(m=0;m<Number;m )
{
Span = d[m];
for(k=0;k<Span;k )
{
for(i=k;i<n-Span;i =Span)
{
s = x[i Span];
j = i;
while(j>-1 && s.key<x[j].key)
{
x[j Span] = x[j];
j-=Span;
}
x[j Span] = s;
}
}
}
}
/*冒泡排序的基本思想是:将待排序序列中第一个
记录的关键字R1与第二个记录的关键字R2做比较,
如果R1>R2,则交换R1和R2的位置,否则不交换;
然后继续对当前序列中的第二个记录和第三个记
录同样的处理,依此类推。
*/
void BubbleSort(elemtype x[], int n)
{
int i,j,flag=1;
elemtype temp;
for(i=1;i<n && flag==1;i )
{
flag=0;
for(j=0;j<n-i;j )
{
if(x[j].key>x[j 1].key)
{
flag=1;
temp=x[j];
x[j]=x[j 1];
x[j 1]=temp;
}
}
}
}
Ⅵ 排序算法的实现和比较
int main()
{
int i,j,t,a[10];
printf("Please input 10 integers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++) /* 冒泡法排序 */
for(j=0;j<10-i-1;j++)
if(a[j]>a[j+1])
{t=a[j];/* 交换a[i]和a[j] */
a[j]=a[j+1];
a[j+1]=t;
Ⅶ 几种排序算法的效率比较
[内部排序的主要算法及相关可实现程序.rar
] - 内部排序的所有算法,而且有相关可执行例子,包括插入排序,选择排序,希尔排序,快速排序,堆排序,归并排序等,很全,很孀。[排序算法、字典和B-树的C++语言实现.zip
] - 排序算法、字典和B-树的C++语言实现
代码内容 包括以下算法:
qui.c sort: quicksort
qsort.c sort: qsort
ins.c sort: insert sort
shl.c sort: shell sort
has.c dictionary:[几种排序方法的实现.rar
] - 用 插入排序, 希尔排序 ,冒泡, 快速排序 , 选择排序 ,堆排序, 归并排序 实现对任意随机数序列,并比较各种方法的运行快慢和复杂度[paixu.rar] - 内部排序算法比较
] - 一个用VC++6.0做的一个数据库方面的程序,是用来英语学习的,有助于VC数据库编程的学习。[各种排序方法比较.rar
] - 这个程序包括了各种常用内部排序算法在平均排序所需时间上的比较.[实现各种排序算法并分析与比较.rar
] - 本程序实现各种排序算法并分析与比较 直接插入排序, SHELL排序,冒泡排序,快速排序,简单选择排序,堆排序,归并排序[图论算法库 C++ 语言实现.zip
] - 图论算法库 C++ 语言实现
代码内容 图论算法库,包括以下算法:
Ⅷ 排序算法比较研究
杯具~~
Ⅸ 排序算法性能比较(数据结构)C语言程序
这题你只要把每个算法的程序代码看一下,在计算下就行
冒泡排序:两个循环,从1加到N,(1+N)N/2 = 500500,最坏交换情况是每次判断都要交换,既500500*3次
选择排序:也是两个循环,比较次数跟冒泡排序一样500500,但是这个只要底层循环交换,既只需1000*3 = 3000次赋值。
插入排序:循环次数一样500500,但是这个最坏情况是每比较一次就赋值一次,既需500500次赋值
希尔排序:时间复杂度是N^1.3倍,比较次数和赋值应该是1000^1.3次方。
归并排序和快速排序,你去查查它的时间复杂度是怎么算,O(lgN*N),好像有系数,算法导论那本书上有,现在不记得是多少了。
希望能帮到你,
Ⅹ 求各种排序算法的比较
给你一个国家集训队的快排吧,这个应该够用了。
这个是对a数组从小到大排序,把这个添加到任何程序中都很快。这个肯定要比堆排序快。对于插入排序快的快排肯定要较慢。但这个比较稳定,要不国家集训队怎么用它呢!!!!!!
procere qsort(l,r:longint);
var
i,j,x,yy:longint;
begin
i:=l;j:=r;x:=a[(i+j) shr 1];
repeat
while a[i]<x do inc(i);
while a[j]>x do dec(j);
if i<=j then
begin
yy:=a[i];a[i]:=a[j];a[j]:=yy;
inc(i);dec(j);
end;
until i>j;
if i<r then qsort(i,r);
if l<j then qsort(l,j);
end;