作为程序员,排序的功能在哪里都能用上,所以我整理了一下几种排序的方法,以备不时之需。鉴于各种语言都要有排序,所以下面我可能用C语言也可能用其他语言写的排序算法,不管怎么说都是这些思想都是一样的。
排序算法:冒泡排序,选择排序,还有其他什么插入排序,希尔排序等等。。。我先整理两个排序,其他的作为小白的我也没怎么理解,也不熟悉,理解了就整理上来。
冒泡排序:
冒泡排序是两个相邻的元素依次比较交换后,选择出最大的或者最小值将其放置在数组的头部或尾部,然后一次比较下两个相邻的元素,当所有的原色都经过比较和交换额操作后就可以得到排好的序列。
void sort(int x[],int n) //n是指数组的长度
{
int i,j,t;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
if(x[j+1]>x[j]) { t=x[j]; x[j]=x[j+1]; x[j+1]=t; }
}
}
选择排序:
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
void sort(int x[],int n)
{
int i,j,t,k;
for(i=0;i<n-1;i++)
{
t=i;
for(j=i+1;j<n;j++)
{ if(a[j]<a[t]){t=j;} } //选出最小的那个元素,并把它的下标给t
if(i!=t) //判断t与i的是不是一样,不一样就替换掉
{k=a[i]; a[i]=a[t]; a[t]=k;}
}
}