快速排序法
来源:互联网 发布:iface102考勤安装软件 编辑:程序博客网 时间:2024/06/05 04:56
快速排序(Quicksort)是对冒泡排序的一种改进。
基本思想:通过一趟排序将要排序的数据分割成独
立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
void sort(int *a, int left, int right)//right取值为数组最后一个元素下标,不是数组大小,left取0{if (left >= right){return;}int i = left;int j = right;int key = a[left];while (i < j){while (i < j && key <= a[j]){j--;}a[i] = a[j];while (i < j && key >= a[i]){i++;}a[j] = a[i];}a[i] = key;sort(a, left, i - 1);sort(a, i + 1, right);}
在c\c++中可以用stdlib库中的qsort()qsort 的函数原型是
void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*));
其中int(__cdecl*compare)(const void*,const void*)指向函数的指针,用于确定排序的顺序,
comp函数应写为:
intcomp(const void*a,const void*b)
{
return *(int*)a-*(int*)b;
}
上面是由小到大排序,return *(int *)b - *(int *)a; 为由大到小排序。
对字符串进行排序
int Comp(const void*p1,const void*p2)
{
return strcmp((char*)p2,(char*)p1);
}
0 0
- 排序--快速排序法
- 【排序】快速排序法
- 快速排序法排序
- 排序算法--快速排序法
- 排序算法--快速排序法
- 快速排序法
- 快速排序法
- 快速排序法
- 快速排序法
- 快速排序法qsort
- java快速排序法
- 通用快速排序法
- 快速排序法
- 快速排序法程序
- 快速排序法
- 快速排序法
- 快速排序法
- 快速排序法
- ADO.NET入门教程(二)了解.NET数据提供程序
- KMP
- Vi技巧小结
- Beaglebone Black(7)测试PWM功能
- Mac中启动另一个程序并将窗口置于最前面
- 快速排序法
- Eclipse开发JAVA中如何Debug
- Javascript模块化编程(三):require.js的用法
- 如何在装上Snappy Ubuntu的树莓派上启动WiFi
- Linux_OpenSSH远程连接
- 在 Windows 中实现 Java 本地方法
- VS2015插件推荐
- python多行注释
- 编译CEF(2171分支)