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

本文共 1305 字,大约阅读时间需要 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

转载于:https://www.cnblogs.com/xudong-bupt/p/7435259.html

你可能感兴趣的文章
微服务,微架构[一]之springboot[helloWorld]
查看>>
MySql导入CSV文件或制表符分割的文件
查看>>
《机器学习与R语言(原书第2版)》一1.2 机器学习的使用与滥用
查看>>
Android Monkey原理探讨
查看>>
微服务架构是什么
查看>>
MongoDB Secondary同步慢问题分析
查看>>
mysql主主同步
查看>>
【Android】用MediaRecorder录制视频太短崩的问题
查看>>
Bridge网络模式下Linux虚拟机和主机进行通信
查看>>
Golang web之http标准库简析
查看>>
PowerShell删除故障群集节点
查看>>
一个数组实现两个栈
查看>>
Fedora 27 命令行提示符修改
查看>>
Erlang 简易安装和卸载
查看>>
Windows Server 2012 R2 DirectAccess功能测试(3)—App2服务器安装及配置
查看>>
Shell 十三问学习笔记2
查看>>
Juniper-R&S-BGP(1):一些写在前头的基础知识
查看>>
python flaskfeng封装跨域请求头和封装json格式
查看>>
【搜索引擎基础知识2】网络爬虫
查看>>
Aptana Studio 3 汉化
查看>>