快速排序算法
来源:互联网 发布:淘宝舞帝商城 编辑:程序博客网 时间:2024/06/07 17:15
package sort;/** * QuickSort * 快速排序算法: * 基本思想: * 1)选择一个枢纽元素(有很对选法,我的实现里采用去中间元素的简单方法) * 2)使用该枢纽元素分割数组,使得比该元素小的元素在它的左边,比它大的在右边。并把枢纽元素放在合适的位置。 * 3)根据枢纽元素最后确定的位置,把数组分成三部分,左边的,右边的,枢纽元素自己,对左边的,右边的分别递归调用快速排序算法即可。 * */public class QuickSort{ private int countStep = 0; public void sort(int[] initData) { int len = initData.length; q_sort(initData, 0, len-1); } private final void q_sort(int[] initData, int from, int to) { if (to - from < 1) { return; } int pivot = (from + to) / 2; pivot = partion(initData, from, to, pivot); q_sort(initData, from, pivot - 1); q_sort(initData, pivot + 1, to); } private int partion(int[] initData, int from, int to, int pivot) { int temp = initData[pivot]; initData[pivot] = initData[to]; while (from != to) { while (from < to && initData[from] < temp) { from++; countStep ++; } if (from < to) { initData[to] = initData[from]; to--; } while (from < to && initData[to] > temp) { to--; countStep ++; } if (from < to) { initData[from] = initData[to]; from++; } } initData[from] = temp; return from; } public int showStep() { return countStep; }}
0 0
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法---快速排序
- 排序算法-快速排序
- 排序算法------快速排序
- 排序算法---快速排序
- 排序算法-快速排序
- 排序算法---快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法:快速排序
- 排序算法 快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- 【排序算法】快速排序
- 排序算法--快速排序
- 排序算法:快速排序
- Python基础知识3——字符编解码
- 希尔排序算法
- SAS DM数据准备读书笔记(目录)
- C#屏幕截图类
- 五个你必须知道的javascript和web debug技术
- 快速排序算法
- 【km笔记】java之面向对象(01)
- 堆排序算法
- 桶式排序算法
- poj 1251 Jungle Roads 最小生成树
- PHP在不同页面间传递Json数据示例代码
- 希尔排序及其优化
- Cocos2D-x游戏开发之十五:CCTMXTiledMap地图的基础实例
- 关于筛法