十大經典排序演算法(一)

2021-10-04 05:25:11 字數 2335 閱讀 4169

這三種排序方式是初學者所必備的基本排序演算法。雖然這三種演算法的效率不高(時間複雜度均為o(n²)),但是其中所蘊含的排序思維值得我們關注。

說明:本文用例均為隨機生成10個(10-99)內的整型來建立陣列並排序。c語言**:

#include

#include

#include

intmain()

} t = num[i]

; num[i]

= num[index]

; num[index]

= t;

}for

(i =

0; i <

10; i++

)printf

("%d "

, num[i]);

return0;

}

python**:
import random

defselcetsort()

: a =

for i in

range(10

):10,

99))# 生成有10個整型的隨機列表

print

(a)for i in

range(0

,len

(a)-1)

: minnum = a[i]

for j in

range

(i +1,

len(a)):

if minnum > a[j]

: minnum = a[j]

index = j

t = a[i]

a[i]

= a[index]

a[index]

= t print

(a)selcetsort(

)

注①:為數列的累加和公式。

c語言**:
#include

#include

#include

intmain()

}}for(i =

0; i <

10; i++

)printf

("%d "

, a[i]);

return0;

}

python**:
import random

defbusort()

: a =

for i in

range(10

):10,

99))print

(a)for i in

range(0

,len

(a)-1)

:for j in

range

(len

(a)-i-1)

:if a[j]

> a[j +1]

: t = a[j]

a[j]

= a[j +1]

a[j +1]

= t print

(a)busort(

)

注②:為數列的累加和公式。

c語言**:
#include

#include

#include

intmain()

a[j +1]

= key;

}for

(i =

0; i <

10; i++

)printf

("%d "

, a[i]);

printf

("\n");

return0;

}

python**:
import random

definsort()

:# 插入排序

a =for i in

range(10

):10,

99))print

(a)for i in

range(1

,10):

key = a[i]

j = i-

1while j >=

0and a[j]

> key:

a[j+1]

= a[j]

j -=

1 a[j+1]

= key

print

(a)insort(

)

筆者是初入計算機的萌新

如有紕漏,還請指正

十大經典排序演算法

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

十大經典排序演算法

不穩定排序種類為4種 快速排序 核心思想是partition操作 二分法分而治之 平均時間複雜度nlogn 希爾排序 高階版的插入排序,先把間隔較遠的子串行排序,最後間隔為1時,等同於插入排序 插入排序在序列有序時,時間複雜度常數級,所以先讓子串行總體有序,能有效降低時間複雜度 平均時間複雜度n 1...

十大經典排序演算法

常見經典排序 非線性時間比較類排序 通過比較來決定元素間的相對次序,由於其時間複雜度不能突破o nlogn 因此稱為非線性時間比較類排序。線性時間非比較類排序 不通過比較來決定元素間的相對次序,它可以突破基於比較排序的時間下界,以線性時間執行,因此稱為線性時間非比較類排序。時間複雜度 空間複雜度 穩...