排序小结(1)-冒泡,快排(c语言实现)

来源:互联网 发布:2010科比西部决赛数据 编辑:程序博客网 时间:2024/05/16 23:50

1.冒泡排序(最常见的排序)

#include <stdio.h>/** *  冒泡排序 */void sort(int *a,int len){    int t;    for(int i=0;i<len;i++)    {        for(int j=0;j<len-i-1;j++)        {            if(a[j]>a[j+1])            {                t=a[j];                a[j]=a[j+1];                a[j+1]=t;            }        }    }}int main(int argc, const char * argv[]) {    int a[10]={        9,2,3,77,12,88,0,18,99,100    };        int i=0;    sort(a,10);        for(i=0;i<10;i++)    {        printf("%d--",a[i]);    }    printf("\n冒泡\n");    return 0;}


2.快速排序

#include <stdio.h>/** *    快速排序 */void quickSort(int s[], int l, int r){    int i, j, x;    if (l < r)    {        i = l;        j = r;        x = s[i];        while (i < j)        {            while(i < j && s[j] > x)                j--;            if(i < j)                s[i++] = s[j];            while(i < j && s[i] < x)                i++;            if(i < j)                s[j--] = s[i];        }        s[i] = x;        quickSort(s, l, i-1); /* 递归调用 */        quickSort(s, i+1, r);    }}int main(int argc, const char * argv[]) {    int a[10]={        9,22,78,77,12,88,10,18,99,45    };        quickSort(a,0,9);        for(int i=0;i<10;i++)    {        printf("%d  ",a[i]);    }    printf("\n快排\n");    return 0;}




0 1