博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
插入排序与快排
阅读量:7059 次
发布时间:2019-06-28

本文共 886 字,大约阅读时间需要 2 分钟。

#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\t", a[i]);
    printf ("\n");
}
int main(void){
    quick_sort(a, 0, ARR_SIZE(a) - 1);
    display(ARR_SIZE(a));
}

转载于:https://www.cnblogs.com/wuOverflow/p/4098741.html

你可能感兴趣的文章
sokect网络编程
查看>>
ios 实现选中时阴影效果
查看>>
Post XML到一个服务器上
查看>>
linux基本网络配置
查看>>
深圳高交会
查看>>
Java中设置classpath、path、JAVA_HOME的作用
查看>>
MySQL数据库管理之日常操作
查看>>
连续潜在变量---核PCA
查看>>
lucene 3.5.0 入门笔记
查看>>
AD域桌面重定向_无权限访问桌面
查看>>
DSPLINK 介绍
查看>>
css笔试题整理(其他)
查看>>
oracle锁及oracle查找锁定表信息
查看>>
我的友情链接
查看>>
IRichBolt和IBasicBolt/BaseBasicBolt对比
查看>>
Linux/Unix批量处理产生
查看>>
XFS和RAID6性能优化
查看>>
corosync+pacemaker 实现高可用集群(三)
查看>>
linux下的java开发环境
查看>>
Bootstrap使用记录
查看>>