實用排序演算法整理 Python

2021-09-13 02:53:53 字數 750 閱讀 8762

def bubble_sort(nums):  #n^2 1

n = len(nums)

for i in range(n):

for j in range(n-2,i-1,-1):

if nums[j]>nums[j+1]:

nums[j],nums[j+1]=nums[j+1],nums[j]

return nums

def short_bubble_sort(nums): #如果一部分排好了怎麼判斷停止

n = len(nums)

exchange = true

passnum = n-1

while passnum>0 and exchange:

exchange = false

for i in range(passnum):

if nums[i]>nums[i+1]:

nums[i],nums[i+1] = nums[i+1],nums[i]

exchange = true

passnum -= 1

return nums

快速排序演算法的關鍵在於先在陣列裡選擇乙個數字,接下來把陣列中的數字分為兩部分,比選擇的數字小的放在左邊,比選擇的數字大的放在右邊。

排序 排序演算法整理

經常零零散散的用到排序演算法,將幾類常見的總結下來 時間複雜度o n 2 空間複雜度o 1 穩定排序 param arr public static void insersort int arr else arr j 1 tmp 氣泡排序 時間複雜度 o n 2 空間複雜度o 1 穩定排序 para...

實用的排序演算法

選擇排序的有序化是從第頭開始有序化的。如 n個元素 從小向大排序 第乙個和後面n 1個元素一一比較 如果發現後面元素的比他小 交換他們兩 一輪下去就可以保證第乙個元素是最小的 後面從第二個元素開始往後面比較 重複以上步驟直到倒數第二個數字 public class xuanze for int i ...

排序演算法整理

template void cinsertsort mysort function compare template void cselectsort mysort function compare swap datas i datas id void cshellsort mysort funct...