摘要: # BinarySearch 二分查找法_Python实现 # 二分查找法是对有序数组的查找. def binary_search(li, num): left = 0 right = len(li) - 1 while left <= right: mid = (right + left)// 2 阅读全文
posted @ 2019-12-26 01:34 Jrri 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 堆的相关知识: 堆? 1.堆是一种完全二叉树 2.每个节点的值总是大于等于(大根堆)或者小于等于(小根堆)子节点的值. 完全二叉树? 除了最后一层外, 每一层都被完全填充, 且所有节点都向左对齐. 大根堆: 每个节点都大于等于子节点小根堆: 每个节点都小于等于子节点 堆排序需要使用两个函数. 实现以 阅读全文
posted @ 2019-12-26 01:32 Jrri 阅读(224) 评论(0) 推荐(0) 编辑
摘要: # MergeSort 归并排序_Python实现 # 归并排序需要两个函数. # 1. 归并的逻辑 # 2. 归并的两种调用 # 归并逻辑 def merge(left, right): result = [] while len(left) > 0 and len(right) > 0: if 阅读全文
posted @ 2019-12-26 01:25 Jrri 阅读(278) 评论(0) 推荐(0) 编辑
摘要: # QuickSort 快速排序_Python实现 def quick_sort(li): if len(li) < 2: return li # 选取基准值, 一般选取第一个, 并将其从中剔除 # mid = li[0] # li.remove(mid) mid = li.pop(0) # 定义左 阅读全文
posted @ 2019-12-26 01:23 Jrri 阅读(328) 评论(0) 推荐(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 阅读全文
posted @ 2019-12-26 01:21 Jrri 阅读(184) 评论(0) 推荐(0) 编辑
摘要: # InsertSort 插入排序_Python实现 def insert_sort(li): for i in range(1, len(li)): # 此处选择从第二个开始且len不减一,因为计算框从i-1开始, 整体需要往后推一格 temp = li[i] # 当前所对比的值 j = i - 阅读全文
posted @ 2019-12-26 01:17 Jrri 阅读(346) 评论(0) 推荐(0) 编辑
摘要: # SelectSort选择排序_Python实现 def select_sort(li): for i in range(len(li)): min_index = i # 此处确定刚刚所排序好的最小值的次序 for j in range(i+1, len(li) ): # 此处range最大值为 阅读全文
posted @ 2019-12-26 01:12 Jrri 阅读(511) 评论(0) 推荐(0) 编辑
摘要: # 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 阅读全文
posted @ 2019-12-26 01:10 Jrri 阅读(235) 评论(0) 推荐(0) 编辑