冒泡排序
def bubbleSort(li): for i in range(len(li) - 1): for j in range(len(li) - i - 1): if li[j] > li[j + 1]: li[j], li[j + 1] = li[j + 1], li[j] li = [345, 456, 68.435, 1, 6, 4, 568, ] bubbleSort(li) print(li)
选择排序
def selectSort(li): for i in range(len(li) - 1): min = I # 选择一个小的来比较 for j in range(i + 1, len(li)): if li[min] > li[j]: li[min], li[j] = li[j], li[min] li = [345, 456, 68.435, 1, 6, 4, 568, ] selectSort(li) print(li)
插入排序
def insertSort(li): for i in range(len(li) - 1): temp = li[i] j = i - 1 while j >= 0 and li[j] > temp: li[j + 1] = li[j] j = j - 1 li[j + 1] = temp li = [345, 456, 68.435, 1, 6, 4, 568, ] insertSort(li) print(li)
快速排序
# 二分左右 def partition(list_for_partition, left, right): # 中轴点 pivot = list_for_partition[left] while left < right: while left < right and list_for_partition[right] >= pivot: right -= 1 list_for_partition[left] = list_for_partition[right] while left < right and list_for_partition[left] <= pivot: left += 1 list_for_partition[right] = list_for_partition[left] list_for_partition[left] = pivot return left # 快速排序 def sort_quickly(list_for_partition, left, right): if left < right: pivot = partition(list_for_partition, left, right) sort_quickly(list_for_partition, left, pivot - 1) sort_quickly(list_for_partition, pivot + 1, right) return list_for_partition # 输出结果 def output_sort_result(list_for_partition): return sort_quickly(list_for_partition, 0, len(list_for_partition) - 1)
堆排序
def heap_sort(array): def heap_adjust(parent): child = 2 * parent + 1 # left child while child < len(heap): if child + 1 < len(heap): if heap[child + 1] > heap[child]: child += 1 # right child if heap[parent] >= heap[child]: break heap[parent], heap[child] = \ heap[child], heap[parent] parent, child = child, 2 * child + 1 heap, array = array.copy(), [] for i in range(len(heap) // 2, -1, -1): heap_adjust(i) while len(heap) != 0: heap[0], heap[-1] = heap[-1], heap[0] array.insert(0, heap.pop()) heap_adjust(0) return array
顺序查找
二分查找
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句