常用排序算法实现——快速排序
来源:互联网 发布:单机版进销存软件 编辑:程序博客网 时间:2024/06/05 14:58
//快速排序算法(使用分治算法排序)
/*
原理,通过一趟扫描将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列
*/
实现原理参见 http://zh.wikipedia.org/wiki/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F
void swap(int *a, int *b){int c = *a;*a = *b;*b = c;}int Partition(int array[], int low, int high){ // 采用子序列的第一个元素为枢纽元素 int pivot = array[low]; while (low < high) { // 从后往前在后半部分中寻找第一个小于枢纽元素的元素 while (low < high && array[high] >= pivot) { --high; } // 将这个比枢纽元素小的元素交换到前半部分 array[low] = array[high]; // 从前往后在前半部分中寻找第一个大于枢纽元素的元素 while (low < high && array[low] <= pivot) { ++low; } // 将这个比枢纽元素大的元素交换到后半部分 array[high] = array[low]; } // 返回枢纽元素所在的位置 return low;}// 快速排序void QuickSort(int array[], int low, int high){ if (low < high) { int n = Partition(array, low, high); QuickSort(array, low, n); QuickSort(array, n + 1, high); }}
0 0
- 常用排序算法实现——快速排序
- 常用排序算法——插入排序,快速排序,归并排序,堆排序,计数排序
- 常用算法——快速排序
- 常用算法——快速排序
- 排序算法—快速排序
- 排序算法—快速排序
- 常用排序算法——快速排序法
- 算法3:最常用的排序——快速排序
- 算法3:最常用的排序——快速排序
- 常用排序算法--快速排序
- 常用排序算法--快速排序
- 常用排序算法-快速排序
- 排序算法—快速排序算法分析与实现(Python)
- 常用算法-快速排序
- 常用排序算法之快速排序c及lua实现
- 【常用排序算法】快速排序(Java实现)
- 简单排序算法实现——快速排序
- 排序算法之——快速排序(Java实现)
- 如何使用MFC和类型库创建自动化项目
- 修改图形界面签到程序
- 去掉tppabs冗余代码和注释
- java面试题总结
- h264格式的flv和mkv无损转换成mp4的方法
- 常用排序算法实现——快速排序
- 4行代码简单实现js树形菜单
- VC 控制PPT
- 第三章 函数编程(一)
- 为企业提供免费代码安全扫描服务(每月限一次)
- Linux磁盘命令及分区
- 布线问题_ny_38(并查集+最小生成树).java
- BigDecimal divide方法结果为无限小数问题
- makefile中的shell语法