继续我们的排序

继续我们的排序

作者:LAMP小白  点击:1865  发布日期:2012-10-04 21:36:00  返回列表

改良的插入排序

核心代码只有3行,简单有效,但是性能一般

#include 
    void swap(int,int);
    void arrDisplay(void);
    int arr[5] = {3,1,7,2,4};
    int main(void)
    {
        int count = sizeof(arr) / sizeof(int);
        int i,j;
        for(i = 1; i < count; i++)
            for(j = i; j > 0 mio_mio_ arr[j-1] > arr[j]; j--)
                swap(j-1,j);
        arrDisplay();
        return 0;
    }
    void swap(int a, int b)
    {
        int temp = arr[a];
        arr[a] = arr[b];
        arr[b] = temp;
    }
    void arrDisplay()
    {
        int i = 0;
        for(i; i < 5; i++)
            printf("%d,", arr[i]);
    }

改良的快速排序

#include 
    void swap(int, int);
    void qsort1(int, int);
    void arrDisplay(void);
    int arr[5] = {3,1,8,5,2};
    int main(void)
    {
        int count = sizeof(arr) / sizeof(int);
        arrDisplay();
        qsort1(0,count-1);
        arrDisplay();
        return 0;
    }
    void qsort1(int left, int right)
    {
        if(left >= right) return; //if left eq right return empty
        int m,i,j;
        m = left;
        for(i = left + 1; i <= right; i++) //left+1 can out the m val
            if(arr[i] < arr[left])
                swap(++m, i);
        swap(left, m);
        qsort1(left, m-1);
        qsort1(m+1,right);
    }
    void swap(int a, int b)
    {
        int temp = arr[a];
        arr[a] = arr[b];
        arr[b] = temp;
    }
    void arrDisplay()
    {
        int i = 0;
        for(i; i < 5; i++)
            printf("%d,", arr[i]);
        printf("n");
    }




上一篇:mysql配简单主从 下一篇:快递查询API
0