一、冒泡排序 (
稳定)
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
二、插入排序 (
稳定)
三、快速排序(
不稳定)
重要
快速排序算法的关键在于先在数组里选择一个数字,接下来把数组中的数字分为两部分,比选择的数字小的放在左边,比选择的数字大的放在右边。
四、归并排序(
稳定)