博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法:快速排序实现 & 定制比较函数
阅读量:6236 次
发布时间:2019-06-22

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

1. 快速排序基本算法

1 #include
2 const static int NUM = 47; 3 4 int quick_sort(int *a, int start, int end){ 5 if (start >= end) 6 return 0; 7 8 int partition = a[start]; //分割点value, 设置为第一个点.最后patition点设置为这个点 9 int i = start; //开始点10 int j = end; //结束点11 12 while(i
= partition) //i可置换 14 --j;15 a[i] = a[j];16 17 while(i

 2. 快速排序主要是定制比较函数,通过定制比较函数,可以实现不同的输出结果

下面算法定制排序,排序结果分为4个桶,桶内数据是升序排列

1 #include
2 #include
3 const static int BUCKET = 4; 4 5 void print(int *a, int start, int end){ 6 for (int i = start; i <= end; ++i){ 7 printf("%d ", a[i]); 8 } 9 printf("\n");10 }11 12 int comp(const void *a, const void *b){13 int va = *(int*)a;14 int vb = *(int*)b;15 16 if (va%BUCKET > vb%BUCKET){17 return 1; 18 } 19 else if (va%BUCKET < vb%BUCKET){20 return -1; 21 } 22 return va - vb; 23 }24 25 int main(){26 int a[] = {
3,1,9,5,4,6,2}; 27 int NUM = sizeof(a)/sizeof(int);28 29 print(a, 0, NUM-1);30 qsort(a, NUM, sizeof(int), comp);31 print(a, 0, NUM-1);32 return 0;33 }
输入: 3 1 9 5 4 6 2 
输出:
4 1 5 9 2 6

转载地址:http://qdzia.baihongyu.com/

你可能感兴趣的文章
Javascript 基本概念(操作符)
查看>>
在阿里云Kubernetes容器服务上打造TensorFlow实验室
查看>>
外观模式(Facade)
查看>>
《程序员的自我修养》读书笔记——静态链接
查看>>
数据科学指南
查看>>
让多个元素贴边平分布局
查看>>
基于ZXing Android实现生成二维码图片和相机扫描二维码图片即时解码的功能
查看>>
单点手势库简单思考实现
查看>>
浏览器内核、JS 引擎、页面呈现原理及其优化
查看>>
数据结构:图概念与基本图实现
查看>>
Node.js学习之路08——fs文件系统之stream流的基本介绍
查看>>
Java后端
查看>>
JS:js操作Cookie实现记住密码功能
查看>>
阿里云 ESS 弹性伸缩服务新功能来袭,更全面、更自动化的使用体验
查看>>
JavaScript数组去重的6种算法
查看>>
从JSON中读取数据追加到HTML中
查看>>
kubeadm部署k8s1.9高可用集群--4部署master节点
查看>>
MokeyDev 的logos tweak工程使用注意事项
查看>>
Zepto和jQuery的具体差异
查看>>
linux下使用awk命令按时间段筛选日志
查看>>