def quicksort(data):
"""快速排序"""
if len(data) >= 2: # 遞迴入口及出口
mid = data[len(data) // 2] # 選取基準值,也可以選取第乙個或最後乙個元素
left, right = , # 定義基準值左右兩側的列表
data.remove(mid) # 從原始陣列中移除基準值
for num in data:
if num >= mid:
else:
return quicksort(left) + [mid] + quicksort(right)
else:
return data
array = [2, 3, 5, 7, 1, 4, 6, 15, 5, 2, 7, 9, 10, 15, 9, 17, 12]
print(quicksort(array))
def bubblesort(arr):
# 氣泡排序
n = len(arr)
for i in range(n):
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
arr = [45, 36, 25, 12, 22, 11, 0]
bubblesort(arr)
排序演算法(快排,冒泡)
排序目的 快速查詢 排序演算法優劣的判斷條件 1.時間複雜度 2.空間複雜度 3.穩定性 關鍵字值相等的數字們,排完序之後順序不變 十大排序演算法 需要掌握的的 氣泡排序 快速排序 希爾排序 折半插入排序 堆排序 氣泡排序 依次比較第i個數與第i 1個數的大小,如果符合條件則不變,如果不符合條件,兩...
排序演算法之交換(冒泡與快排)
排序演算法根據是否需要訪問外存,分為內部排序和外部排序。使用記憶體,分為插入 直接插入排序 希爾排序 選擇 簡單選擇排序 堆排序 交換 氣泡排序 快速排序 歸併 基數。5.氣泡排序 效率很低,實現簡單 待排序列 3 1 4 2 第一趟排序結果 1 3 2 4 第二趟排序結果 1 2 3 4 第三趟排...
python實現快排 氣泡排序
1 快排 快排 從一堆雜亂的資料中挑選乙個基準值,將這些數字和基準值一一比較,大的放基準值的右邊,小的放左邊 實現思路 定義乙個函式,挑選列表的首個數字作為基準值,其他數字比基準值小的數字生成列表,同理,其他數字和基準值大的數字生成另乙個列表,再遞迴快排這兩個列表 def quick sort nu...