演算法 列表排序

2022-03-11 17:36:49 字數 1986 閱讀 6915

乙個計算過程,解決問題的方法。

用來評估演算法執行效率的(**執行的大該次數)

用來評估演算法記憶體占用大小的式子

列表每兩個相鄰的數,如果前邊的比後邊的大,那麼就交換這兩個數的位置。每圈的次數裡少排乙個。

#

### 氣泡排序 (************************)

### 時間複雜度:o(n^2)

###圈數:元素個數-1 次數:元素個數-1-圈數索引

### 選擇排序

#### 時間複雜度:o(n^2)

插入到有序區時會與有序區每個元素比較大的方後面位置

#

#### 插入排序

#### 時間複雜度: o(n^2)

definsert_sort(li):

for i in range(1, len(li)):

tmp =li[i]

j = i - 1

while j >=0 and li[j] >tmp:

li[j+1] =li[j]

j = j - 1li[j+1] = tmp

取乙個元素,從右往左元素依次比較大的放右邊不動,小的放左邊。哪邊空出來位置就從對邊取值比較補位。當左邊和右邊的索引相同時就把取出的元素補上。

#歸位函式

defpartition(li, left, right):

#取出比較值

tmp =li[left]

while left

#右邊與比較值比較

while left < right and li[right] >=tmp:

right = right - 1li[left] =li[right]

#左邊值與比較值比較

while left < right and li[left] <=tmp:

left = left + 1li[right] =li[left]

#右邊和左邊索引相同時比較值補位

li[left] =tmp

return

left

#### 快速排序

#### 時間複雜度:o(nlogn)

defquick_sort(li, left, right):

if left

mid =partition(li, left, right)

quick_sort(li, left, mid-1)

quick_sort(li, mid+1, right)#呼叫

quick_sort(li, 0, len(li)-1)

演算法 列表查詢以及列表排序

1 列表查詢 從列表中查詢指定元素 2 順序查詢 從列表第乙個元素開始,順序進行搜尋,直到找到為止。返回找到的那個索引 3 二分查詢 從有序列表的候選區data 0 n 開始,通過對待查詢的值與候選區中間值的比較,可以使候選區減少一半。二分查詢 時間複雜度是o logn 二分查詢的前提 列表是有序的...

python資料列表氣泡排序 演算法

氣泡排序,確定位置找數字 alist def bubble sort array cnt len array if cnt 1 return array for i in range 0,cnt 確定位置,從起始位置開始,根據每個位置找到確定的數字 for j in range cnt 1,i,1 ...

python 列表排序 python列表排序有哪些

python列表排序 1 氣泡排序,是一種簡單的排序演算法,它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來 2 插入排序,通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。1 氣泡排序 氣泡排序 bubble sort 是一種簡單的排序...