![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python数据结构算法
文章平均质量分 83
python数据结构算法
Grateful_Dead424
这个作者很懒,什么都没留下…
展开
-
Python数据结构与算法(第一天)
一、算法引入 如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a、b、c可能的组合? (1) import time start_time=time.time() for a in range(0,1001): for b in range(0,1001): for c in range(0,1001): if a+b+c==1000 and a**2+b**2==c**2:原创 2021-07-09 11:17:16 · 171 阅读 · 0 评论 -
Python数据结构与算法(第二天)
12.基本顺序表与元素外围顺序表 int a=1,整型,4个字节(32位) 0000 0000 0000 0000 0000 0000 0000 0001 0x01 0 0 0 0 0 0 0 0 0x02 0 0 0 0 0 0 0 0 0x03 0 0 0 0 0 0 0 0 0x04 0 0 0 0..原创 2021-07-27 00:29:37 · 106 阅读 · 0 评论 -
Python数据结构与算法(第三天)
18.链表的提出 根据线性表的实际存储方式,分为两种实现模型: 顺序表,将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示。 链表,将元素存放在通过链接构造起来的一系列存储块中。 为什么需要链表 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。 链表的定义 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺原创 2021-07-29 12:06:19 · 89 阅读 · 0 评论 -
Python数据结构与算法(第四天)
27.双向链表及添加元素 双向链表 一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。 操作 is_empty() 链表是否为空 length() 链表长度 travel() 遍历链表 add(item) 链表头部添加 append(item) 链表尾部添加 insert(pos, item) 指定位置添加 remove(item) 删除节点 searc原创 2021-07-30 23:13:49 · 87 阅读 · 0 评论 -
Python数据结构与算法(第五天)
34.栈与队列的概念 栈 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。 由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。 队列 队列(queue)是只允许在一端进原创 2021-08-02 17:09:25 · 105 阅读 · 0 评论 -
Python数据结构与算法(第六天)
44.希尔排序 希尔排序 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 希尔排序过程 希尔排序的基本思想是:将数组列在一个表中并对列分别进行插入排序,重复这过程,不过每次用更长的列(步长更长了,列数原创 2021-08-04 18:26:44 · 125 阅读 · 0 评论 -
Python数据结构与算法(第七天)
50.归并排序 归并排序 归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。 将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。 def merge_sort(alist): n = len(alist) if n <=1: return alist mid = n//2原创 2021-08-06 12:54:23 · 124 阅读 · 0 评论 -
Python数据结构与算法(第八天)
树与树算法 树的概念 树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 每个节点有零个或多个子节点; 没有父节点的节点称为根节点; 每一个非根节点有且只有一个父节点; 除了根节点外,每个子节点可以分为多个不相交的子树; 树的术语 节点的度:一个节点含有的子树的..原创 2021-08-07 15:45:04 · 139 阅读 · 0 评论