随笔分类 -  Python数据结构与算法

摘要:import random def bucket_sort(li, n=100, max_num=10000): buckets = [[] for _ in range(n)] # 创建桶 for var in li: i = min(var // (max_num // n), n-1) # i 阅读全文
posted @ 2022-03-26 14:27 KYZH 阅读(19) 评论(0) 推荐(0) 编辑
摘要:计数排序 import random def count_sort(li, count=100): count = [0 for _ in range(count+1)] for val in li: count.append(val) li.clear() for ind, val in enum 阅读全文
posted @ 2022-03-26 13:49 KYZH 阅读(18) 评论(0) 推荐(0) 编辑
摘要:希尔排序 def insert_sort_gap(li, gap): for i in range(gap, len(li)): #i 表示摸到的牌的下标 tmp = li[i] j = i - gap #j指的是手里的牌的下标 while j >= 0 and li[j] > tmp: li[j+ 阅读全文
posted @ 2022-03-26 13:26 KYZH 阅读(18) 评论(0) 推荐(0) 编辑
摘要:顺序查找 def linear_search(li, val): for ind, v in enumerate(li): if v == val: return ind else: return None 二分查找 def binary_search(li, val): left = 0 righ 阅读全文
posted @ 2022-03-23 17:24 KYZH 阅读(28) 评论(0) 推荐(0) 编辑
摘要:code def hanoi(n, a, b, c): if n > 0: hanoi(n-1, a, c, b) print("moving from %s to %s" % (a, c)) hanoi(n-1, b, a, c) hanoi(2, 'A', 'B', 'C') 阅读全文
posted @ 2022-03-23 17:19 KYZH 阅读(22) 评论(0) 推荐(0) 编辑
摘要:快速排序 def partition(li, left, right): tmp = li[left] while left < right: while left < right and li[right] >= tmp: #从右面找比tmp小的数 right -= 1 # 往左走一步 li[le 阅读全文
posted @ 2022-03-23 17:13 KYZH 阅读(23) 评论(0) 推荐(0) 编辑
摘要:冒泡排序 def bubble_sort(li): for i in range(len(li)-1): #第i趟 exchange = False for j in range(len(li)-i-1): if li[j] > li[j+1]: li[j], li[j+1] = li[j+1], 阅读全文
posted @ 2022-03-23 17:08 KYZH 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-03-23 16:55 KYZH 阅读(12) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示