【算法】常用算法之快速排序算法
来源:互联网 发布:牵引变电所接地网优化 编辑:程序博客网 时间:2024/05/21 06:11
快速排序算法执行流程:
1.找到当前数列的中间元素,将它作为基准值,并且保存起来.
2.分别使用基准值左边和右边的元素和基准值进行比较。将比基准值小的元素放到基准值的左边,比基准值大的元素放到基准值的右边。
3.分别对基准值左边和右边的数列进行步骤1和2的操作。
4.直到所有的数据都处理完毕。
//快速排序算法DEMOpublic class QuickSortDemo { public static void main(String[] args) { int a[] = { 11, 55, 22, 44, 66,44, 33 }; quickSort(a, 0, a.length - 1); for (int i : a) { System.out.print(i+" "); } } private static void quickSort(int[] a, int left, int right) { // 1.计算当前数列的中间值的位置,并获取中间值 int p = (left + right) / 2; // 2.保存基准值 int middle = a[p]; System.out.println("之间值:"+middle); int i = left; int j = right; // 3.用基准值左边和右边的数列依次和基准值进行比较 while (i < j) { // 一直从左边的数列中寻找大于当前基准值的元素 while (a[i] <= middle && i < p) { i++; } if (i < p) { a[p] = a[i]; p = i; } // 一直从右边的数列中寻找小于当前基准值的元素 while (a[j] > middle && j > p) { j--; } if (j > p) { a[p] = a[j]; p = j; } } // 把基准值放置到最后的位置中 a[p] = middle; // 递归调排序方法,分别对基准值左边和右边的数列进行排序 // 基准值的左边的元素至少给有2个才需要递归排序 if (p - left > 1) { quickSort(a, left, p - 1);// 对左边进行排序 } if (right - p > 1) { quickSort(a, p + 1, right);// 对右边进行排序 } }}
阅读全文
0 0
- 【算法】常用算法之快速排序算法
- 常用排序算法之快速排序算法
- 常用算法之-快速排序
- 常用算法之快速排序
- 常用排序算法之快速排序
- 常用排序算法之快速排序
- Java常用排序算法之快速排序
- 常用排序算法之快速排序
- 常用排序算法之快速排序
- 常用排序算法之快速排序
- JAVA常用排序算法之快速排序
- 常用排序算法之快速排序
- 常用算法-快速排序
- 常用算法之排序算法三【快速排序】
- 算法之-快速排序算法
- 常用算法之快速排序---笔记
- 【LeetCode】常用算法之快速排序
- Java常用算法之快速排序
- 动态规划的经典问题初探: Best Time to Buy and Sell Stock(DP)
- 双十一快到了,剁手党们准备好了吗,快来看看优惠卷商城吧
- Java Security Architecture--Java安全体系技术文档翻译(二)
- HttpClient--入门
- 彻底理解android 建造者模式
- 【算法】常用算法之快速排序算法
- 由Mybatis发现的一个坑
- Mac截图
- 一个18届程序媛的offer血泪史
- CSRF XSS(XSRF) CORS OPTIONS(HTTP)概念理解
- 笔记_计算机网络_Python socket编程
- 代理模式
- Android Activity生命周期详解
- android 6.0运行时权限