排序演算法 - 快速排序
快速排序很重要,接觸很多次了。平均時間複雜度O(nlogn),最壞情況(有序時)O(n*n)。
優化:1.遞迴到小陣列時採用插入排序(希爾排序)。2.在切分元素上做優化
package com.zx.sort;
import java.util.Arrays;
public class Partition {
public static void main(String[] args) {
int[] a={9,1,3,6,5,55,6,63,32};
sort(a, 0, a.length-1);
System.out.println(Arrays.toString(a));
}
public static int partition(int[] a,int low,int high){
int keng=low;
int x = a[low];
while(low<high){
while(low<high && x<=a[high]){
high--;
}
if(low<high){
a[low++] = a[high];
}
while(low<high && x>a[low]){
low++;
}
if(low<high){
a[high--]=a[low];
}
}
a[low]=x;
return low;
}
public static void sort(int[] a,int low,int high){
if (low >=high) {
return;
}
int index=partition(a, low, high);
sort(a, low, index);
sort(a, index+1, high);
}
}
相關文章
- 排序演算法__快速排序排序演算法
- 排序演算法:快速排序排序演算法
- 排序演算法-快速排序排序演算法
- 排序演算法——快速排序排序演算法
- 排序演算法之 '快速排序'排序演算法
- #排序演算法#【4】快速排序排序演算法
- 《排序演算法》——快速排序(Java)排序演算法Java
- 【JAVA演算法】排序演算法 -- 快速排序Java演算法排序
- 排序演算法 - 快速插入排序和希爾排序排序演算法
- 演算法之常見排序演算法-氣泡排序、歸併排序、快速排序演算法排序
- 【演算法】快速排序演算法排序
- 排序演算法-Java實現快速排序演算法排序演算法Java
- Python之排序演算法:快速排序與氣泡排序Python排序演算法
- 排序演算法之快速排序的實現排序演算法
- Sorting 排序演算法: Quick Sort 快速排序排序演算法UI
- 看動畫學演算法之:排序-快速排序動畫演算法排序
- 經典排序演算法 - 快速排序Quick sort排序演算法UI
- 三種快速排序演算法以及快速排序的優化排序演算法優化
- 演算法系列(四)排序演算法中篇--歸併排序和快速排序演算法排序
- 畫江湖之演算法篇【排序演算法】快速排序演算法排序
- 畫江湖之演算法篇 [排序演算法] 快速排序演算法排序
- java:快速排序演算法與氣泡排序演算法Java排序演算法
- 演算法之旅:快速排序演算法排序
- 演算法之快速排序演算法排序
- 圖形化排序演算法比較:快速排序、插入排序、選擇排序、氣泡排序排序演算法
- 排序演算法之「快速排序(Quick Sort) _c++ 」排序演算法UIC++
- python排序演算法的實現-快速排序Python排序演算法
- 排序:氣泡排序&快速排序排序
- 排序之快速排序排序
- 【分治演算法】歸併排序,快速排序和漢諾塔演算法排序
- 演算法 | 快速排序詳解演算法排序
- 演算法導論-快速排序演算法排序
- Python 演算法 快速排序Python演算法排序
- c#-快速排序-演算法C#排序演算法
- python實現氣泡排序、插入排序以及快速排序演算法Python排序演算法
- 前端演算法:快速排序演算法前端演算法排序
- 快速排序&&歸併排序排序
- php插入排序,快速排序,歸併排序,堆排序PHP排序