java 演算法基礎之二快速排序演算法

2021-07-23 19:09:10 字數 1327 閱讀 2324

所謂的快速排序的思想就是,首先把陣列的第乙個數拿出來做為乙個key,在前後分別設定乙個i,j做為標識,然後拿這個key對這個陣列從後面往前遍歷,及j--,直到找到第乙個小於這個key的那個數,然後交換這兩個值,交換完成後,我們拿著這個key要從i往後遍歷了,及i++;一直迴圈到i=j結束,當這裡結束後,我們會發現大於這個key的值都會跑到這個key的後面,不是的話就可能你寫錯了,小於這個key的就會跑到這個值的前面;然後我們對這個分段的陣列再時行遞迴呼叫就可以完成整個陣列的排序。

用圖形法表示由下:

這樣就以key分為了兩個段,我們把這兩個段再遞進去就可以解決問題了

實現**由下:

1

package

com.quick;23

public

class

quick

9 _quick_sort(arrays, 0, lenght - 1);10}

1112

public

void _quick_sort(int arrays, int start, int

end)

1617

int i =start;

18int j =end;

19int value =arrays[i];

20boolean flag = true;21

while (i !=j) else

30 }else

else37}

38}39snp(arrays);

40 _quick_sort(arrays, start, j-1);

41 _quick_sort(arrays, i+1, end);

4243}44

45public

void snp(int

arrays)

49system.out.println();50}

5152

private

void swap(int arrays, int i, int

j) 58

59public

static

void

main(string args) ;

62 q.quick_sort(a,6);

63}

6465 }

找乙個部落格做自己的女朋友,不管你跟她說什麼她都幫你記錄,這是多麼幸福的一件事啊。如果有女生能做到這點,趕盡娶回家吧!

重溫經典演算法之二 快速排序

快速排序的思想與歸併排序思想類似,都是採用分治法的思想。將乙個陣列a l.r 使用快速排序可以分解為三個主要的步驟 通過隨機演算法獲得陣列a 中的乙個下標k,將 a k 與a r 交換。將陣列分解成左右兩個陣列,左邊陣列的值均小於a r 右邊陣列的值均不小於 a r 分別對左右兩個陣列進行排序,這兩...

基礎演算法二 快速排序

快速排序也是面試中經常問到的演算法,人人都應該掌握。快速排序是對氣泡排序的改進,它的基本思想是 採用分而治之的思想,選取乙個基準,一趟排序後把資料分成兩部分,一部分都比基準小,另一部分都比基準點大,然後再對這兩部分分別進行上述的操作,直到整個序列有序。快速排序因為資料的交換是跳躍的,所以速度比只和相...

java排序演算法之二插入排序

首先還是介紹插入排序的原理 確定乙個檢索範圍把最小的值放到陣列第乙個位接著把範圍逐步擴大,把大的元素放到小元素後面。和氣泡排序比較起來就是在一定範圍內速度比氣泡排序稍快,排序好的元素固定在乙個範圍,比較後直接整體移動。解析 int arr int temp 0 for int i 1 i arr.l...