/**
* created by luo on 2017/9/2.
*/public
class
quicksort
int partition = partition(arr,first,last);//獲取基準值所在陣列的位置,並對左右進行大小區分
quicksort(arr,first,partition);
quicksort(arr,partition+1,last);
}//1基準值獲取,2實現左右分組並將基準數所在位置返回
public
intpartition(int arr,int first,int last)
if(iwhile (iif(i//最後將基準數放入到 陣列中
return i;
}}
測試類和測試結果
/**
* created by luo on 2017/9/2.
*/public
class
quicksorttest
quicksort qs = new quicksort();
qs.quicksort(arr,0,arr.length-1);
arrays.stream(arr).foreach(e -> system.out.print(e+","));
}}
測試結果
1,3,4,6,6,6,7,7,9,11,12,12,13,15,17,22,23,23,23,25,26,26,26,26,27,27,29,
30,31,31,32,33,33,34,34,35,35,37,39,40,40,42,44,44,45,45,46,47,47,
48,48,48,52,53,53,54,56,60,60,61,62,64,65,65,65,66,66,67,68,68,69,7
2,72,72,77,78,79,79,81,82,85,85,86,87,88,89,89,89,91,93,93,96,96,98,
98,98,98,98,99,99,
java面試 演算法篇之堆排序
一 堆的概念 堆是一棵順序儲存的完全二叉樹。完全二叉樹中所有非終端節點的值均不大於 或不小於 其左 右孩子節點的值。其中每個節點的值小於等於其左 右孩子的值,這樣的堆稱為小根堆 其中每個節點的值大於等於其左 右孩子的值,這樣的堆稱為大根堆 二 要點 1.將陣列構造成初始堆 若想公升序則建立大根堆,若...
面試演算法 排序
0.演算法時間複雜度 演算法的時間複雜度和空間複雜度 總結 1.快速排序 白話經典演算法系列之六 快速排序 快速搞定 快速排序最好,最壞,平均複雜度分析 2.歸併排序 白話經典演算法系列之五 歸併排序的實現 blog.csdn.net morewindows article details 6678...
Java排序演算法之快速排序
首先在陣列中選擇乙個基準點 該基準點的選取可能影響快速排序的效率,後面講解選取的方法 然後分別從陣列的兩端掃瞄陣列,設兩個指示標誌 lo指向起始位置,hi指向末尾 首先從後半部分開始,如果發現有元素比該基準點的值小,就交換lo和hi位置的值,然後從前半部分開始掃秒,發現有元素大於基準點的值,就交換l...