排序學習筆記

2021-08-21 08:19:01 字數 763 閱讀 1143

參考書籍《資料結構(c++版)》

一、交換排序(小到大)

1、氣泡排序:每次把陣列分成左邊無序號區域,和右邊有序區域。

public static void sortbubbler() 

}} }

2、快速排序:每次選擇乙個中間的值,再對中間以前的和中間以後的再次遞迴,在某個中間前只有乙個資料時退出!比起冒泡演算法的優勢是每次把資料直接掉到前或者後,冒泡是一步一步。

public static void quicksort(int arr, int begin, int end) 

}static int partition(int arr, int begin, int end)

while (i < j && arr[i] <= arr[j])//從前往後掃瞄(n步)。

i++;

if (i < j)

} return i;

}

注意:遞迴的退出條件。

排序學習筆記

以前對直接選擇排序和簡單插入排序總是混淆,今天分辨一下 直接選擇 將index為0 的值記為large,遍歷比較從1到n的元素,選出最大或最小的那位,和0比較,看是否交換,然後迴圈繼續 index為1,直到結束。for index 0 indexlarge x index index index f...

排序學習筆記1

資料結構也快學完了,排序算的上是很常用的一種演算法,也體現了演算法設計中的一些常用的思路。演算法設計中乙個很重要的思路就是整體和區域性。快速演算法是,分治演算法更是,其實插入排序和選擇排序也外乎於此。折半查詢就是從整體到區域性的乙個下放過程來加以改進簡單插入排序的。shell演算法更是基於此。且sh...

快速排序學習筆記

學習資料出處 白話經典演算法系列之六 快速排序 快速搞定 快速排序採用分治策略,其基本思想 1 從數列中選乙個元素x作為基準數 2 分割槽過程,把不小於x的元素放到x的右邊,小於x的元素放到x的左邊 3 再對左右區間重複進行分割槽操作,直到各區間只有乙個數 morewindows總結的 挖坑填數 分...