0. 排序算法相关资料
十大经典排序算法
Python实现十大经典排序算法–python3实现(以及全部的排序算法分类)
1. 冒泡排序
# 基础算法
def bubblesort(arr):
for i in range(1, len(arr)):
for j in range(0, len(arr)-i):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
# 考虑后续数列已经有序不需要比较了
def bubblesort_v1(arr):
for i in range(1, len(arr)):
flag = 0 #有序标记,每一轮的初始是true
for j in range(0, len(arr)-i):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
flag = 1 #有元素交换,所以不是有序,标记变为1
#一趟下来是否发生位置交换,如果没有交换直接跳出大循环
if flag == 0:
break
return arr
# 考虑每一趟比较的后面几个,已经有序不需要比较了
def bubblesort_v2(arr):
last_Exchange_idx = 0
#无序数列的边界,每次比较只需要比到这里为止
sort_border = len(arr) - 1
for i in range(1, len(arr)):
flag = 0 #有序标记,每一轮的初始是true
for j in range(0, sort_border):
if arr[j] > arr[j+1]:
arr[j], arr