基本思想:兩個數比較大小,較大的數下沉,較小的數冒起來。
過程:平均時間複雜度:o(n2)
引用
from random import randint
defbubble_sort
(arr, order=true):
""" 氣泡排序演算法
:param arr:需要排序的陣列
:param order:排序方向預設為true true為順序 false為逆序
:return: null
"""for num in range(len(arr)):
for j in range(len(arr)-1, num, -1):
if order:
if arr[j] < arr[j - 1]:
arr[j], arr[j - 1] = arr[j - 1], arr[j]
else:
if arr[j] > arr[j - 1]:
arr[j], arr[j - 1] = arr[j - 1], arr[j]
return arr
count = int(input('你需要隨機多少個數進行排序?\n'))
my_arr =
for i in range(count):
print('隨機數列為', my_arr)
bubble_sort(my_arr)
print('排序後的數列為', my_arr)
你需要隨機多少個數進行排序?
12隨機數列為 [94, 27, 0, 18, 20, 37, 96, 32, 115, 25, 52, 4]
排序後的數列為 [0, 4, 18, 20, 25, 27, 32, 37, 52, 94, 96, 115]
基本思想:
在長度為n的無序陣列中,第一次遍歷n-1個數,找到最小的數值與第乙個元素交換;
第二次遍歷n-2個數,找到最小的數值與第二個元素交換;
…第n-1次遍歷,找到最小的數值與第n-1個元素交換,排序完成。
過程:第一次找到最小的乙個元素,和第乙個元素交換
第二次找到第二小的乙個元素,和第二個元素交換
第三次找到第三小的乙個元素,和第三個元素進行交換
… 第n-1次找到第二大的元素,和倒數第二個位置進行交換
平均時間複雜度:o(n2)
引用
def
selection_sort
(arr, order=true):
""" 選擇排序演算法
:param arr:需要排序的陣列
:param order:排序方向預設為true true為順序 false為逆序
:return:返回排序號了的陣列
"""for num in range(len(arr)-1):
index = num
for j in range(num+1, len(arr)):
if order:
if arr[j] < arr[index]:
index = j
else:
if arr[j] > arr[index]:
index = j
if index != num:
arr[num], arr[index] = arr[index], arr[num]
return arr
基本思想:
在要排序的一組數中,假定前n-1個數已經排好序,現在將第n個數插到前面的有序數列中,使得這n個數也是排好順序的。如此反覆迴圈,直到全部排好順序。
插入排序
引用2. 平均時間複雜度:o(n2)
def
insertion_sort
(arr, order=true):
""" 插入排序演算法
:param arr: 需要排序的陣列
:param order:排序方向預設為true true為順序 false為逆序
:return:
"""for num in range(len(arr)-1):
for j in range(num+1, 0, -1):
if order:
if arr[j] < arr[j - 1]:
arr[j], arr[j - 1] = arr[j - 1], arr[j]
else:
break
else:
if arr[j] > arr[j - 1]:
arr[j], arr[j - 1] = arr[j - 1], arr[j]
else:
break
return arr
python 常用排序演算法
常用的排序演算法 氣泡排序,插入排序,歸併排序,快速排序 基數排序 堆排序,直接選擇排序。常用的查詢演算法 順序查詢,二分查詢,雜湊表查詢和二叉樹查詢 其中我們應該重點掌握二分查詢 歸併排序和快速排序,保證能隨時正確 完整地寫出它們的 同時對其他的查詢和排序必須能準確說出它們的特點 對其平均時間複雜...
常用基礎陣列排序演算法
解題思路 1 1 n個數字,自己 與 下一位 比較,選中最大的放在 下一位 再以 下一位 為 自己 與 下一位 比較,直到選出最大的數字放在最後 2 1 n 1 個數字,重複第一步驟操作 n 直到剩下最後乙個數字 思路 解題思路 1 從1 n 個數字中選擇最小的數字放在 第乙個 2 從2 n 個 重...
python常見排序演算法 python常用排序演算法
def bubble sort alist 氣泡排序 n len alist for i in range n 1 外層迴圈次數 for j in range n 1 i 這裡 記得要 i if alist j alist j 1 alist j alist j 1 alist j 1 alist ...