常用排序算法总结(二)快速排序(java实现)
2018-08-09 19:49
134 查看
1.0 描述
冒泡排序在相邻位置进行,比较和移动的次数较多,快速排序又称分区交换排序,是对冒泡排序的改进。基本思想是:
- 选定一个值为轴值;
- 将序列分为左右两个区,比轴值大的值放在右区,比轴值小的值放在左区;
- 各区间重复1、2至序列有序。
我们选择序列的第一个数为轴值。
2.0 代码实现
[code]import java.util.Arrays; public class Partition { public static void partition(int s[],int first,int end) { //first~end为待划分区间开始与结束位置 int i=first; //i,j指示与轴值进行比较的左侧记录位置与右侧记录位置 int j=end; while(i<j) { // 右侧扫描 while(i<j && s[i]<s[j]) j--; // 交换位置 if(i<j) { int temp=s[j]; s[j]=s[i]; s[i]=temp; } i++; // 左侧扫描 while(i<j && s[i]<s[j]) i++; if(i<j) { int temp=s[j]; s[j]=s[i]; s[i]=temp; } j--; } System.out.print(Arrays.toString(s)); } public static void main(String[] args) { int[] x= {3,6,4,8,1,10,99,68,108}; partition(x,0,8); } }
3.0 算法效率
最好情况:时间复杂度O(nlog2n)
最坏情况:时间复杂度O(n^2)
平均情况:时间复杂度O(nlog2n)
阅读更多相关文章推荐
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- Java 常用排序算法实现--快速排序、插入排序、选择、冒泡
- Java 常用排序算法实现--快速排序、插入排序、选择、冒泡
- 元素排序几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 【转】排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 常用排序算法C++实现(堆排序,快速排序,归并排序,基数排序)
- JAVA排序算法实现代码-快速(Quick Sort)排序
- 排序算法之快速排序的思想以及Java实现
- Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- 【Java】八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序
- 【学习总结】Java中最常用的三大排序算法-冒泡排序、选择排序、插入排序
- Java实现排序算法——快速排序
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- java 排序算法实现 其四:快速排序
- 排序算法(二)_希尔排序、快速排序、归并排序的Java实现
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,快速排序
- 常用排序算法总结---Java实现
- 排序算法--交换排序(冒泡排序、快速排序、随机快速排序)java实现