数据结构
文章平均质量分 84
weixin_44457930
这个作者很懒,什么都没留下…
展开
-
数据结构第六天
查找1 查找1 查找 查找可以分成顺序查找与二分查找,前者就是把整个线性表给遍历一遍,既可以是顺序表,也可以是链表,对原序列是否有序也不需要考虑,后者只能顺序表进行操作,而且要求原序列必须有序。 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表。 主要过程如下:首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查原创 2021-02-02 00:06:34 · 79 阅读 · 3 评论 -
数据结构第五天
排序1 冒泡排序及其改进2 选择排序1 冒泡排序及其改进冒泡排序(英语:Bubble Sort)是通过比较相邻两个元素的大小的排序算法。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。第一次是把最大的元素找出来,并通过冒泡的方式放到最后面,第二次是把第二大的元素找出来放在倒数第二的位置。冒泡排序示意图:冒泡排序的代码如下:def bubble_sort(alist): for j in ran原创 2021-01-31 22:22:56 · 73 阅读 · 1 评论 -
数据结构第四天
栈和队列1 栈与队列的概念2 栈操作的实现3 队列操作的实现4 双端队列1 栈与队列的概念 对于一个线性表,如果只能在表的一端添加和删除元素,这种结构就是栈(类似于子弹的弹夹),如果一端只能添加元素,另一端只能删除元素,那么这种数据结构就是队列(相当于排队的队列)。 由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。2 栈操作的实现 栈的结构如图所示 栈的主要操作如下 Stack() 创建一个新的空栈 push(ite原创 2021-01-29 10:08:06 · 60 阅读 · 0 评论 -
数据结构第三天
链表数据区与链接区a = 10b = 20变量a和b都是内存空间的名字,但a和b并不存放具体的数,而是存放对象的地址。python中的赋值号不是赋值,而是引用,也就是说,传输的是地址。python中交换变量a,b的值,使用下面的表达式a, b = b, a赋值号右边,相当于通过变量来访问对象的值,即20和10,而整个表达式相当于a, b = 20, 10即用元组赋值的方式,分别把20和10的地址赋给a和bpython实现链表的方式...原创 2021-01-27 21:27:23 · 68 阅读 · 0 评论 -
数据结构第二天
数据结构第二天1 顺序表与链表2 顺序表的形式(1)基本形式(元素内置)(2)元素外置3 顺序表的结构(1)一体式(2)分离式(3)动态顺序表(4)两种数据扩充方式4 python中的顺序表1 顺序表与链表 数据结构主要可以分为线性结构和非线性结构,线性结构包括顺序表和链表,前者使用顺序存储方式,后者使用链式存储方式。2 顺序表的形式(1)基本形式(元素内置) 顺序表中的元素,按顺序存放,使用下标来索引,下标表示偏移量。 Li表示一个数组,那么数组的起始地址是0X23,L[2]表示从0X原创 2020-12-30 17:34:25 · 79 阅读 · 1 评论 -
数据结构第一天
绪论1 时间复杂度(1)单靠运行时间衡量算法效率未必可靠(2)时间复杂度的概念(3)常见的时间复杂度(4)时间复杂度的比较(5)时间复杂度的几条基本计算规则2 timeit模块3 算法与数据结构的区别 由于之前学过数据结构,因此今天的学习,主要是复习,笔记只记录学到的新知识。1 时间复杂度(1)单靠运行时间衡量算法效率未必可靠 为完成同一功能编写了两个不同的程序,其中一个放在古老的计算机上运行,另外一个放在一台性能优越的机器上运行,这样的话,根据运行时间来比较两个程序的优劣,就显得不客观。程序的原创 2020-11-25 17:16:29 · 80 阅读 · 0 评论