java面試演算法之快速排序

2021-08-07 16:38:12 字數 1070 閱讀 2357

/**

* 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...