- 博客(10)
- 收藏
- 关注
原创 贪心算法以及动态规划法
'''# 贪心算法贪心算法(贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择,也就是说,不从整体最优上加以考虑,他所做的是某种意义上的局部最优解贪心算法并不保证会得到最优解,但是在某些问题上贪心算法的解就是最优解要会判断一个问题能否用贪心算法来计算''''''找零问题,假设商店老板需要找零n元钱,钱币的面额有:100元 50元 20元 5元 1元如何找零使得所需钱币的数量最少从最大钱币开始找'''t = [100, 50, 20,
2022-04-01 09:17:41
335
原创 双链表实现树结构
'''树目录结构可以递归定义的数据结构'''class Node: def __init__(self, name, type='dir'): self.name = name self.type = type # 'dir' or 'file' self.children = [] self.parent = None def __repr__(self): return self.nam
2022-04-01 09:12:23
432
原创 链表实现哈希表以及哈希表的应用
'''哈希表 字典和集合一个通过哈希函数来计算数据存储位置的数据结构,通常支持如下操作:insert:插入键值对get :如果存在键为key的键值对则返回其value,否则返回空值delete:删除键为key的键值对直接寻址表关键字的全域U比较小时,一种简单而又有效的方法缺点:当域U很大,需要消耗大量内存当域U很大,实际出现的key很少,无法处理关键字不是数字的情况直接寻址表:key为k的元素放在k位置上哈希: 构建大小为m的寻址表T key为k的元
2022-04-01 09:05:19
833
原创 链表及其基本操作
'''链表:是由一系列节点组成的元素集合。每个节点包含两部分,数据域item和指向下一个节点的指针next,通过节点之间的相互连接,最终串联成一个链表'''class Node(object): def __init__(self, item): self.item = item self.next = None## a = Node(1)# b = Node(2)# c = Node(3)# a.next = b# b.next = c
2022-04-01 09:03:18
178
原创 栈、队列以及迷宫搜索问题
# 数据结构# 逻辑结构:线性结构(一对一)、树结构(一对多)、图结构(多对多)# 物理结构:# 列表:(其他语言称数组),是一种基本数据类型import random'''32位的机器上,一个整数占4字节 a[2] 地址位为100+2*4=108一个地址也占4个字节列表中的元素是怎么存储的基本操作: 按下标查找, 插入元素、 删除元素时间复杂度: O(1) O(n) o(n)python的列表的实现数组和列表的区别::数
2022-04-01 09:01:21
176
原创 希尔排序、计数排序和桶排序及其时间复杂度
import random# 希尔排序'''希尔排序是一种分组插入排序算法首先取一个整数d1 = n/2,将元素分为d1个组,每组相邻两个元素之间距离为d1,在各组内进行直接插入排序取第二个整数d2=d1/2,重复上述分组排序过程,直到d1=1,即所有元素在同一组内进行直接插入排序希尔排序每趟并不使某一些元素有序,而是是整体数据越来越接近有序,最后一趟排序使得所有数据有序时间复杂度:由gep决定'''def insert_sort_gap(li, gep): for
2022-04-01 08:58:29
349
原创 NB三人组及其时间复杂度
# 快速排序# 时间复杂度: O(nlogn)# 最坏情况: o(n2)# li = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]# 递归最大深度问题# 设置递归最大深度问题、、# import sys# sys.setrecursionlimit(1000000)'''取一个元素P,使元素P归位列表被分成了两半,左边都比P小,右边都比P大递归'''print('---------------')def partition(data, left, right
2022-04-01 08:55:32
168
原创 lowB三人组排序算法及其时间复杂度
# 冒泡排序# 比较,交换# 趟# 最大进入有序区# 时间复杂度:o(n2)# import random### def bubble_sort(li):# for i in range(len(li) - 1): # 第i趟# exchange = False # 改进:# # 如li= [9,8,7,1,2,3,4,5,6]# for j in range(len(li) - i - 1):## .
2022-03-25 13:58:21
1260
1
原创 递归、顺序查找以及二分查找
# O()数字的上界# 时间复杂度:用来评估算法运行效率的一个式子,一般复杂度越高,速度越慢# 1:一个量纲# O(logn) 循环减半# O(1)<o(logn)<O(n)<O(nlogn)<O(n2)<O(n2logn)<O(n3)'''确定问题的规模n循环减半过程k层关于n的循环'''# 空间复杂度: 用来评估算法内存占用大小的式子# 空间换时间# 递归 调用自身,结束条件# 汉诺塔问题'''n个盘子时:1、把n-1个盘子从A经过
2022-03-25 13:53:20
555
原创 python的快捷键总结
电脑是解决众多问题的工具,尤其对于程序员而言,拥有一套快捷方式,在编程时,可以事半功倍,从而高效地完成工作任务,今天就带来一套快捷方式,仅供大家参考:一、常见快捷方式:1、系统自带的快捷方式win+R : 打开命令行窗口,例如在窗口输入cmd命令进入管理员运行窗口。win+tab键 :进入预览模式,切换工作窗口ctrl+tab键: 切换网页。win+D:缩小窗口ctrl+shift:切换输入法shift:快速切换中英文1~2数字键:输入时选择想要输入的字。例如:“即”字,按住1,即可选择“
2022-03-15 15:27:08
5390
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅