排序演算法 快速排序

2022-09-16 23:24:22 字數 1007 閱讀 4630

參考博文:

快速排序是氣泡排序的改進版,也是最好的一種內排序,在很多面試題中都會出現

思想:1.在待排序的元素中任取乙個元素作為基準(通常選第乙個元素,但最好的選擇方法是從待排序元素中隨機選取乙個作為基準),稱為基準元素

2.將待排序的元素進行分割槽,對基準元素大的元素放到它的右邊,比其小的放在它的左邊

3.對左右兩個分割槽重複以上步驟直到所有元素都是有序的

所以可以把快速排序聯想成東拆西補或西拆東補,一邊拆一邊補,直到所有元素達到有序狀態,

左邊被拆了,就要遍歷右邊的元素去補,右邊被拆了,就遍歷左邊的元素去補

實現**:

1

public

class

quicksort ;

5int _left = 0;

6int _right = arr.length-1;

78 system.out.print("排序前:");

9for(int

num:arr)

1213

quicksort(arr,_left,_right);

14 system.out.print("----排序後:");

15for(int

num:arr) 18}

1920

private

static

void quicksort(int arr, int _left, int

_right)

3536 arr[right] = base; //

將基準值回歸填充到中間

3738 quicksort(arr,_left,left - 1); //

對基準元素左邊的元素遞迴排序

39 quicksort(arr,right + 1,_right);//

對基準元素右邊的元素遞迴排序40}

41}42 }

排序演算法 快速排序演算法

網際網路的大型公司還在火熱招聘中,參與了一次又一次的筆試,都不通過,我還是太菜!作為程式設計人員,需要邁過去 資料結構與演算法 這個坎,畢竟,筆試不會真的很虧,加油吧,少些水,多點實操。一 快速排序演算法思想 從一組資料中找出乙個基準值,一般是選擇中間值作為基準值,然後從左到右將值與基準值進行比較,...

演算法 排序演算法 快速排序

快速排序是對冒泡法排序的一種改進。快速排序演算法 的基本思想是 將所要進行排序的數分為左右兩個部分,其中一部分的所有資料都比另外一 部分的資料小,然後將所分得的兩部分資料進行同樣的劃分,重複執行以上的劃分操作,直 到所有要進行排序的資料變為有序為止。可能僅根據基本思想對快速排序的認識並不深,接下來以...

排序演算法 快速排序

快速排序使用分治法 divide and conquer 策略來把乙個序列 list 分為兩個子串行 sub lists 步驟為 1.從數列中挑出乙個元素,稱為 基準 pivot 2.重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面 相同的數可以到任一邊 在這個分...