归并排序 基数排序 快排 哪一个快

还有堆排和希尔排序
哪一个最简洁耗时又少

第1个回答  2012-10-07
基数排序快,它的时间复杂度是线性的。个人认为还是快排(nlogn)用的多一些
第2个回答  2012-10-06
最有最好最快的算法。都是看情况的
冒泡算法再某些时候还是最快的--比如元素非常少的情况下
快速排序必须有大的量才能看出效果
还有其他的一些方式。没有最好只有合适不合适
第3个回答  2012-10-07
快速排序最好用且比较好,我这儿有全部的代码,包括冒泡排序的C代码,插入排序的C代码,选择排序的C代码,快速排序的C代码。我的邮箱[email protected]需要的话你来联系我。这儿只列出较简单的冒泡排序
void buble_sort(int a[],int n)
{
int i,j,temp;
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}

上面的是冒泡排序,下面的是快速排序
int partition(int a[],int left,int right)
{
int key=a[left];
while(left<right)
{
while(left<right&&a[right]>=key)
right--;
a[left]=a[right];//想想此处问什么没有用交换,却达到了交换的目的啊,后面还有类似的地方
while(left<right&&a[left]<key)
left++;
a[right]=a[left];
}
a[left]=key;
return left;
}
void quick_sort(int a[],int left,int right)
{
if(left>right)return;
int mid=partition(a,left,right);
quick_sort(a,left,mid-1);
quick_sort(a,mid+1,right);
}本回答被提问者采纳
第4个回答  2012-10-06
快排,但最坏情况的话最慢了追问

其他排序有什么优缺点