快速排序(填坑與交換)

2021-10-02 21:19:35 字數 887 閱讀 1500

填坑

交換注意:填坑的本質就是交換,只不過交換把兩次填坑合併為一次交換過程而已。

我自己也對**進行了梳理:

public

void

quicksort

(int

nums,

int low,

int high)

if(i

while

(iif(i

}//i==j,指向主元的最終位置,用主元填這個坑

nums[i]

= curr;

//分治策略

quicksort

(nums,low,i-1)

;quicksort

(nums,i+

1,high);}

}

public

void

quicksort

(int

nums,

int low,

int high)

while

(i<=curr)

if(i

}//將主元與最終位置上的元素位置互換

nums[low]

= nums[i]

; nums[i]

= curr;

//分治策略

quicksort

(nums,low,i-1)

;quicksort

(nums,i+

1,high);}

}

對leetcode第912題,使用兩種方法進行提交,效能表現如下:

「挖坑填坑」理解快速排序

快速排序的基本思路 找乙個基準元素,對陣列進行調整,調整的標準是,這個基準元素的左邊存放的都是比這個元素小的,右邊都是比這個元素大的。然後分而治之,對左右兩邊的子陣列利用同樣的規則調整,調整到每乙個子陣列中都只有乙個元素時結束。基本思想很簡單,主要是理解如何在確定基準元素之後,對陣列 子陣列 進行調...

填坑法 快速搞定快速排序演算法

該方法的基本思想是 1 先從數列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3 再對左右區間重複第二步,直到各區間只有乙個數。以乙個陣列作為示例,取區間第乙個數為基準數。我先上個圖讓大家感受一下,畫了很長時間,但是畫的還是很差,將就下看看吧...

MySQL坑與填坑

錯誤 1064 錯誤 1215 原因 資料型別不同 錯誤 1630 去掉函式名和 間的空格 check 關鍵字無效 使用列舉或觸發器 特定字串約束 使用列舉 課程性質 char 10 constraint c5 check 課程性質in 公共基礎 專業基礎 專業選修 任意選修 課程性質 enum 公...