C语言排序的方法
发布网友
发布时间:2022-04-19 23:35
我来回答
共3个回答
热心网友
时间:2022-06-13 03:47
现在流行的排序有:直接插入排序、冒泡排序、简单选择排序、希尔排序、快速排序、堆排序、归并排序、基数排序。
对n个记录进行选择排序的方法是:通过n-i次关键字之间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录进行交换,当i等于n时所有记录都已有序排列。
void selectsort(int data[],int n)
{
int i,j,k,temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(data[j]<data[k]) k=j;
if(k!=i)
{
temp=data[i];data[i]=data[k];data[k]=temp;
}//if
}//for
}//for
}//selectsort
热心网友
时间:2022-06-13 05:05
第一次选最小的放在第一个位置。
然后再从第二个位置开始找最小的方到第二个位置,(显然是整个数组第二小的)
然后再从第i个位置。。。。。。。。。。i。。。。
伪代码如下:
//设数组为p,大小为n
void sort()
{
int i,j,t;
for(i=0 ; i<n ; i++)
{
int min=i;
for(j=i+1 ; j<n ; j++)
{
if(p[j]<p[min])
min=j;
}
//把p[min]放置到第i个位置,其实就是一个交换的过程;
t=p[i];
p[i]=p[min];
p[min]=t;
}
}
热心网友
时间:2022-06-13 06:39
1 直接插入排序 2 希而排序 3 冒泡排序 4快速排序 5堆排序 6合并排序 7基数排序 8外排序