几种常用排序

来源:互联网 发布:好听的网络歌曲2016 编辑:程序博客网 时间:2024/05/21 10:32

冒泡排序:

void bubbleSort(int a[],int n){    int i,j,exchange;    int tmp;    for(i=0;i<n-1;i++)    {        exchange=0;        for(j=n-1;j>i;j--)        {            if(a[j]<a[j-1])            {                tmp=a[j];                a[j]=[j-1];                a[j-1]=tmp;                exchange=1;            }        }        if(exchange==0)        return ;    }        }


快速排序:

void quickSort(int a[],int low,int high){    int i,j,tmp;    i=low;    j=high;    if(low<high)    {        while(i!=j)        {           tmp=a[low];        while(j>i&&a[j]>tmp)        j--;        a[i]=a[j];        while(i<j&&a[i]<tmp)        i++;        a[j]=a[i];         }        a[i]=tmp;        quickSort(a,low,i-1);        quickSort(a,i+1,high);    }}


 

直接选择排序:

void selectSort(int a[],int n){        int i,j,k;    int tmp;    for(i=0;i<n-1;i++)    {        k=i;        for(j=i+1;j<n;j++)            if(a[j]<a[k])                k=j;                      tmp=a[i];      a[i]=a[k];      a[k]=tmp;      }}


 

直接插入排序:

void insertSort(int a[],int n)
{
    int tmp,j,i;
    for(i=1;i<n;i++)
    {
        tmp=a[i];
        j=i-1;
        while(j>0&&a[j]>tmp)
        {
           
            a[j+1]=a[j];
            j--;
        }
        a[j+1]=tmp;  
    }
}

原创粉丝点击