排序大集合

来源:互联网 发布:郭靖 知乎 编辑:程序博客网 时间:2024/05/02 20:31

作为程序员,排序的功能在哪里都能用上,所以我整理了一下几种排序的方法,以备不时之需。鉴于各种语言都要有排序,所以下面我可能用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;}

}

}  

8 0
原创粉丝点击