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

    #include"iostream"
    #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);
        }
    }
  • 相关阅读:
    window.open()参数列表
    感受教育,焦点访谈
    《迷墙》
    锻炼身体
    Great Fire Wall
    今天
    查询重复记录的SQL语句
    Oracle,SQL Server,Access万能数据库通用类!
    经典SQL语句大全
    C#编码规范
  • 原文地址:https://www.cnblogs.com/wuOverflow/p/4098764.html
Copyright © 2011-2022 走看看