排序

冒泡排序:
def bubble_sort(arr):
# 相邻两个元素相比
for i in range(len(arr)):
for j in range(len(arr)-1-i):
if arr[j+1] > arr[j]:
temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
return arr

选择排序
def select_sort(arr):
# 选择最小的元素放在列表最前面
index_min = 0
for i in range(len(arr)-1):
for j in range(i, len(arr)):
if arr[j] < arr[index_min]:
index_min = j
temp = arr[index_min]
arr[index_min] = arr[i]
arr[i] = temp
return arr

插入排序:
def insert_sort(arr):
# 假设有一个有序序列,对后面的列表进行扫描,找到相应的位置进行插入
for i in range(1, len(arr)):
index_temp = i - 1
temp = arr[i]
while index_temp >= 0 and arr[index_temp] > temp:
arr[index_temp + 1] = arr[index_temp]
index_temp -= 1
arr[index_temp+1] = temp
return arr

快速排序:
def quick_sort(arr, left, right):
# 取一个基准值,一般都是序列的第一个数,将列表中小于基准值的放左边,大于基准值的放右边
if left >= right:
return arr
temp = arr[left]
low = left
high = right
while left < right:
while arr[right] >= temp and left < right:
right -= 1
arr[left] = arr[right]
while arr[left] <= temp and left < right:
left += 1
arr[right] = arr[left]
arr[left] = temp
quick_sort(arr, low, left-1)
quick_sort(arr, left+1, high)
return arr

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。