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...