排序算法
经典的各类排序算法的实现
yc_excellent
别着急,只要开始就不晚
展开
-
计数排序_Python
def count_sort(array): max_value = array[0] for i in array: if i > max_value: max_value = i count_array = [0] * (max_value + 1) for i in array: count_array[i] += 1 array.clear() for i in range(len(coun原创 2021-11-17 00:20:59 · 580 阅读 · 0 评论 -
堆排序_Python
def heap_sort(array): # 创建大顶二差堆 从最后一个非叶子节点(i=(length-1-1)//2) 开始到根节点(i=0) for i in range((len(array) - 2) // 2, -1, -1): down_adjust(i, len(array), array) # 循环删除堆顶元素,替换到二插堆的末尾,调整堆产生新的堆顶 for i in range(len(array) - 1, 0, -1):原创 2021-11-17 00:19:09 · 718 阅读 · 0 评论 -
归并排序_Python
def merge_sort(array): if len(array) == 1: return array middle_index = len(array) // 2 left = merge_sort(array[:middle_index]) right = merge_sort(array[middle_index:]) return merge_comb(left, right)def merge_comb(left, right)原创 2021-11-17 00:17:25 · 536 阅读 · 0 评论 -
快速排序_Python
def quick_sort(start_index, end_index, array): if start_index >= end_index: return pivot_index = partition(start_index, end_index, array) quick_sort(start_index, pivot_index - 1, array) quick_sort(pivot_index + 1, end_index, arra原创 2021-11-16 23:59:04 · 53 阅读 · 0 评论 -
希尔排序_Python
def shell_sort(array): gap = len(array) // 2 while gap > 0: for i in range(gap, len(array)): temp = array[i] j = i - gap while j >= 0: if temp < array[j]: arra原创 2021-11-16 23:46:46 · 208 阅读 · 0 评论 -
插入排序_Python
def insertion_sort(array): for i in range(1, len(array)): temp = array[i] j = i - 1 while j >= 0: if temp < array[j]: array[j + 1] = array[j] array[j] = temp j -=原创 2021-11-16 23:32:56 · 53 阅读 · 0 评论 -
选择排序_Python
def selection_sort(array): for i in range(len(array) - 1): min_index = i for j in range(i + 1, len(array)): if array[j] < array[min_index]: min_index = j if min_index != i: array[i], ar原创 2021-11-16 23:23:30 · 47 阅读 · 0 评论 -
冒泡排序_Python
def bubble_sort(array): for i in range(len(array) - 1): is_sorted = True for j in range(len(array) - 1 - i): if array[j] > array[j + 1]: temp = array[j] array[j] = array[j + 1]原创 2021-11-16 23:07:16 · 217 阅读 · 0 评论