数据结构
Chordx
这个作者很懒,什么都没留下…
展开
-
找零问题--动态规划学习笔记
1、递归n = 0def recursive_change(money,coins): global n if money == 0: return 0 minNumCoins = float("inf") for i in range(len(coins)): if money >= coins[i]: if money - coins[i] == 1: n += 1原创 2021-10-12 13:40:38 · 80 阅读 · 0 评论 -
topk问题
利用堆排序小根堆时间复杂度O(mlogk)# 小根堆def sift_small(li,top,end): tmp = li[top] i = top j = 2*i + 1 while j <= end: if j + 1 <= end and li[j+1] < li[j]: j = j + 1 if li[j] < tmp: li[i] = li[j]原创 2021-06-21 11:34:09 · 78 阅读 · 0 评论 -
数据结构-学习笔记-堆排序
堆排序1、二叉树1.1 二叉树每个节点最多有两个子节点,且左右子树的顺序不能任意颠倒1.2满二叉树深度为n, 由2^(n-1)个节点构成的二叉树为满二叉树1.3完全二叉树完全二叉树是由满二叉树而引出来的,设二叉树的深度为n, 如果1->(n-1)层均是满节点的,即为一个满二叉树,且第n层的所有节点都连续集中在左侧2、堆(完全二叉树)大根堆: 每一个父节点都比其子节点大小根堆: 每一个父节点都比其子节点小3、堆排序过程 1.构造堆 2.堆顶元素为最大原创 2021-06-18 18:04:46 · 187 阅读 · 0 评论 -
数据结构-学习笔记-快速排序
快速排序左右指针的位置递归一般复杂度 O(nlogn) 每一层复杂度O(n),共有logn层最坏复杂度O(n^2) 优化,随机选择一个数与第一个数交换位置先选择一个数(可以是第一个数,也可以是其他位置的数,再跟第一个数交换位置)从右边选择比其小的数放在左边指针位置,从左边选择比其大的数放置右边指针位置处,终止条件算法框架 def Quick_sort(li,left,right): 终止条件(基例) mid = partion(li,left,righ原创 2021-06-17 11:30:23 · 71 阅读 · 0 评论 -
数据结构-学习笔记-插入排序
插入排序初始时手里(有序区)只有一张牌每次从无序区摸一张牌,插入到手里已有牌的正确位置时间复杂度O(n^2)def Insert_sort(li): for i in range(1,len(li)): tem = li[i] # 摸的牌 for j in range(i-1,-1,-1): if li[j] > tem: li[j+1] = li[j] # 大的牌往右挪一步原创 2021-06-11 16:56:55 · 53 阅读 · 0 评论 -
数据结构-学习笔记-选择排序
选择排序一趟排序记录最小的数,放到第一个位置再一趟排序记录列表无序区最小的数,放在第二个位置调用函数def Seclect_sort_func(li): sort_list = [] for i in range(len(li)): min_li = min(li) sort_list.append(min_li) li.remove(min_li) return sort_list li = [9,2,5原创 2021-06-11 12:46:19 · 104 阅读 · 1 评论 -
数据结构-学习笔记-冒泡排序
冒泡排序列表每两个相邻的书,如果前面的数比后面的大,则交换这两个数一趟排序后,则无序区减少一个数,有序区增加一个数趟数,无序区,指针的位置时间复杂度 O(n^2)i = 0 (第一趟) {j = 0 to n - 1} 左闭右开i = 1 (第二趟) {j = 0 to n - 2} 左闭右开…i (第i+1趟) {j = 0 to n-i-1} 左闭右开import randomdef Bubble_sort(li): print("排序前: %s"%li) fo原创 2021-06-10 18:53:22 · 102 阅读 · 0 评论 -
数据结构-学习笔记-查找
顺序查找时间复杂度 O(n)import randomdef Linear_search(li,val): for index,v in enumerate(li): if v == val: return index li = list(range(10))val = 3random.shuffle(li) # 打乱顺序print(li)Linear_search(li,val)# [4, 3, 7, 2, 8,原创 2021-06-10 16:43:17 · 43 阅读 · 0 评论