![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动手学数据结构
!sTorm
这个作者很懒,什么都没留下…
展开
-
【动手学数据结构—排序算法复杂度(Python)】
时间复杂度比较排序算法仿真比较 排序算法 仿真比较 导入的时间计算器: def print_execute_time(func): from time import time # 定义嵌套函数,用来打印出装饰的函数的执行时间 def wrapper(*args, **kwargs): # 定义开始时间和结束时间,将func夹在中间执行,取得其返回值 start = time() func_return = func(*args,原创 2022-04-28 16:47:54 · 257 阅读 · 0 评论 -
【动手学数据结构—基数排序(Python)】
基数排序原理代码实现 原理 代码实现 import random def js_sort(li): max_num = max(li) it = 0 # max_num = 987 (三位数字,3次分桶) -> it=1 -> max_num=98 -> it=2 ->max_num=9 -> it=3 -> max_num=0 while max_num != 0: buckets = [[] for _ in range(1原创 2022-04-28 16:25:10 · 1446 阅读 · 0 评论 -
【动手学数据结构—计数/桶排序(Python)】
计数/桶排序原理代码实现 原理 当排序的数据比较多的时候,需要统计所有数出现的次数,它的空间复杂度为o(n)。桶排序的优点在与优化了内存的使用,实际上桶排序的算法效率并不高,因为有两层for嵌套,如果数据分布比较不理想的时候,时间复杂度可达o(n^2) 代码实现 import random def count_sort(li, max): count = [0 for _ in range(max+2)] # 初始计数都为0 for i in li: count[i]原创 2022-04-28 00:34:55 · 1496 阅读 · 0 评论 -
【动手学数据结构—希尔排序(Python)】
希尔排序原理代码实现 原理 代码实现 def quick_sort(li, d): # i指摸到的牌, j指的是手上的牌 for i in range(d, len(li)): temp = li[i] j = i - d # 初始手上的牌为最后一张 while j >= 0 and temp < li[j]: # 如果手上的牌比抽到的大,继续往左比较 li[j+d] = li[j]原创 2022-04-27 18:34:25 · 1298 阅读 · 0 评论 -
【动手学数据结构—归并排序(Python)】
归并排序原理实现代码 原理 实现代码 def merge(li, low, mid, high): L = [] # 储存的容器 i = low j = mid + 1 while i <= mid and j <= high: # 如果两边都有元素,说明可以进行比较 if li[i] < li[j]: # 如果左边小于右边,则把左边的给L L.append(li[i]) i += 1 #原创 2022-04-26 23:52:34 · 360 阅读 · 0 评论 -
【动手学数据结构—堆排序(Python)】
堆排序原理 原理 堆的向下调整图形化: 代码实现: def sift(li, low, high): i = low # 根节点 temp = li[i] j = 2*i + 1 # 左孩子节点 while j <= high: if j + 1 < high and li[j + 1] > li[j]: # 防止右孩子节点溢出,如果右孩子节点大于左孩子节点,则右孩子节点接替父节点 j = j + 1 #原创 2022-04-26 17:20:46 · 658 阅读 · 0 评论 -
【动手学数据结构—快速排序(Python)】
快速排序原理代码实现 原理 代码实现 def paratition(li, left, right): temp = li[left] # 用temp变量暂存第一个元素 while left < right: # 当left和right两个指标的位置没碰到时,继续更替 while left < right and li[right] >= temp: # 第一个条件防止right小于left 第二个条件则是查找的核心条件 ri原创 2022-04-26 14:48:11 · 390 阅读 · 0 评论