5分鐘搞定快速排序

2021-10-12 09:55:45 字數 448 閱讀 7811

首先找到陣列中的乙個基準值(通常是中間值);

遍歷陣列,如果比基準值小就放到左邊,比基準值大放到右邊;

以基準值左右兩邊的子列作為新數列,不斷重複第一步和第二步(迭代法);

def quick_sort(arr):

if len(arr) <2 :return arr

mid =arr[len(arr) // 2] # 基準值

left,right=, # 定義左右兩個子列

arr.pop(len(arr) // 2) # 去掉這個基準值

for item in arr:

if item > mid:

else:

return quick_sort(left) +[mid] + quick_sort(right) # 不斷進行迭代

5分鐘搞定快速排序

直接切入主題,快速排序分為兩過程 挖抗填數 分治法 先說下分治法,顧名思義就是 分而治之 的核心思想。簡單舉個例子體會一下 現在有100個人需要按照身高排成一列。首先,定個身高基準1.7m 定得太高和太低都會打破平衡 高與1.7m的都站在一列的右端,低於1.7m的都站在一列的左端。1.7m即為左右端...

5分鐘搞定Schema

事先宣告 搞定不是精通,只是能夠運用!其實schema很簡單,之前寫過dtd,比dtd學習成本還低!最近做的專案基於檔案系統的,一堆的xml檔案,所以想寫個驗證,也方便ide操作,既然推薦schema,那就用schema d 不廢話,看xml檔案。ivan hihello 這個應該算是個比較典型的x...

5分鐘回憶快速排序

複雜度分析 給我從小到大排序!首先 瞎選 乙個值,找到其最終位置,即排好序後它在哪,並把小於它的丟左邊,大於的丟右邊。對左右子部分重複操作,直至子部分都只剩乙個元素,則所有元素都找到了其該在的位置。第乙個?如果陣列正好是從大到小的,那我每一輪都要擼 比較 n nn個數才能找到選的數應該在哪,擼n n...