乙個計算過程,解決問題的方法。
用來評估演算法執行效率的(**執行的大該次數)
用來評估演算法記憶體占用大小的式子
列表每兩個相鄰的數,如果前邊的比後邊的大,那麼就交換這兩個數的位置。每圈的次數裡少排乙個。
#### 氣泡排序 (************************)
### 時間複雜度: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 是一種簡單的排序...