十大排序演算法簡單講解

2021-09-26 22:44:40 字數 1838 閱讀 9003

十大排序演算法最最通俗易懂的動態圖外加簡單介紹,具體**請看下一部分的講解

自己慢慢更新:

如下:

十大排序演算法的複雜度

嗯,先說一下我對這演算法的簡單理解吧,氣泡排序很形象;在這組陣列中將前後兩個數進行比較,然後看需要的是公升序還是降序,個性化的選擇把那個放在前面;然後在遍歷n邊,後就排序好了

優點,比較好想,缺點,時間複雜度太大,見上表

void swap(int &a,int &b)//交換函式

void maopao(int a[13123])//氣泡排序

} } int main()

; maopao(a);

for(int i=0;i<10;i++)

void xuanzhe(int a[13123])//選這排序

} swap(a[i], a[min]);//無序區第乙個元素與最小值交換、

} }int main()

;//十個數

xuanzhe(a);

for(int i=0;i<10;i++)

{ cout插入排序跟選擇排序很像,都分為有序區和無序區。但是選擇排序是每次都從無序區中選出最小元素插入到有序區末尾,而插入排序是直接將陣列的第乙個元素作為有序區的第乙個元素,每次都拿出無序區第個一元素插入到有序區合適的位置上,直到無序區為空,排序完成。

簡單就是可分為以下幾個步驟:

1 將陣列分為有序區和無序區,有序區0,無序區[1,n-1]; 

2 取下無序區第乙個元素,儲存其值。 

3有序區中元素從後往前與新元素比較,如果新元素更小,舊元素往後移。 

3 重複步驟3,直到新元素大於或等於舊元素,將新元素插入該元素之後。 

4 重複步驟234, n-1次,排序完成。

**如下:

四,快速排序(這個是最難理解事實上我認為啊)

五,歸併排序

六,希爾排序

七,堆排序

八,記數排序

九,桶排序

十,基數排序

十大排序演算法

1.非線性時間類排序 時間複雜度未突破 0 nlog 2n 不穩定的四個排序演算法 選擇排序 0 n2 希爾排序 0 n1.3 希爾排序實現python 快速排序 0 n log2 n 0 nlog 2n 0 nlog 2 n 快速排序實現c python 堆排序 0 n log2 n 0 nlog...

十大排序演算法

排序規則 從左至右依次增大 一 基於比較的排序演算法 插入排序 逐個遍歷未排序序列,將其在已排序序列中從右到左比較,直到遇到比自己小的數,然後將元素插入到那個數的後面,有序序列從左向右生長。選擇排序 在未排序序列中選擇最小的元素,將其插入到已排序序列的末尾,有序序列從左向右生長。氣泡排序 從左至右逐...

十大排序演算法

github 排序演算法是 資料結構與演算法 中最基本的演算法之一。排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有 插入排序 希爾排序 選擇排序 氣泡排序 歸併排序...