zoukankan      html  css  js  c++  java
  • 插入排序与快排

    #include< stdio.h>
    #define ARR_SIZE(a)    (sizeof((a)) / sizeof((a[0])))

    int a[] = {1, 23, 32, 0, 2, 5, 23};

    void insert_sort(int *a, int n) {
        int i, j, temp;

        for (i = 1; i < n; i++) {
            temp = a[i];
            for (j = i - 1; j >= 0 && temp < a[j]; j--) {
                a[j + 1] = a[j];
            }

            a[j + 1] = temp;
        }
    }
    void quick_sort(int *a, size_t left, size_t right){
        size_t p = (left + right) / 2;
        int pivot = a[p];
        size_t i = left, j = right;

        for(;i < j;){
            while (i < p && a[i] <= pivot)++i;
            if (i < p){
                a[p] = a[i];
                p = i;
            }
            while (j > p && a[j] >= pivot)--j;
            if (j > p){
                a[p] = a[j];
                p = j;
            }
            a[p] = pivot;

            if (p - left > 1)quick_sort(a, left, p - 1);
            if(right - p > 1)quick_sort(a, p + 1, right);
        }
    }

    void display(int n){
        for (int i = 0; i < n; ++i)printf("%d ", a[i]);
        printf (" ");
    }

    int main(void){
        quick_sort(a, 0, ARR_SIZE(a) - 1);
        display(ARR_SIZE(a));
    }
  • 相关阅读:
    由优化反射性能问题引发的思考
    Flash还能走多远?
    .net CLR 4.0垃圾回收机制的改进之3
    Silverlight 3引入了GPU加速的特性
    java 字符串
    JAVA 容器
    JAVA 反转链表
    JAVA 自定义比较器
    JAVA 类相关知识
    vscode 输出中文乱码
  • 原文地址:https://www.cnblogs.com/wuOverflow/p/4098741.html
Copyright © 2011-2022 走看看