摘要:
# BinarySearch 二分查找法_Python实现 # 二分查找法是对有序数组的查找. def binary_search(li, num): left = 0 right = len(li) - 1 while left <= right: mid = (right + left)// 2 阅读全文
摘要:
堆的相关知识: 堆? 1.堆是一种完全二叉树 2.每个节点的值总是大于等于(大根堆)或者小于等于(小根堆)子节点的值. 完全二叉树? 除了最后一层外, 每一层都被完全填充, 且所有节点都向左对齐. 大根堆: 每个节点都大于等于子节点小根堆: 每个节点都小于等于子节点 堆排序需要使用两个函数. 实现以 阅读全文
摘要:
# MergeSort 归并排序_Python实现 # 归并排序需要两个函数. # 1. 归并的逻辑 # 2. 归并的两种调用 # 归并逻辑 def merge(left, right): result = [] while len(left) > 0 and len(right) > 0: if 阅读全文
摘要:
# QuickSort 快速排序_Python实现 def quick_sort(li): if len(li) < 2: return li # 选取基准值, 一般选取第一个, 并将其从中剔除 # mid = li[0] # li.remove(mid) mid = li.pop(0) # 定义左 阅读全文
摘要:
# ShellSort希尔排序_Python实现 def shell_sort(li): n = len(li) # gap间隔为长度除2 gap = n // 2 while gap > 0: for i in range(gap, n): while i >= gap and li[i - ga 阅读全文
摘要:
# InsertSort 插入排序_Python实现 def insert_sort(li): for i in range(1, len(li)): # 此处选择从第二个开始且len不减一,因为计算框从i-1开始, 整体需要往后推一格 temp = li[i] # 当前所对比的值 j = i - 阅读全文
摘要:
# SelectSort选择排序_Python实现 def select_sort(li): for i in range(len(li)): min_index = i # 此处确定刚刚所排序好的最小值的次序 for j in range(i+1, len(li) ): # 此处range最大值为 阅读全文
摘要:
# BubbleSort冒泡排序_Python实现 def bubble_sort(li): for i in range(len(li) - 1): # len为个数, range_len为所有元素下标 range(len-1)为冒泡次数,冒泡次数为元素个数-1 for j in range(le 阅读全文