- 博客(11)
- 收藏
- 关注
原创 Python算法—排序与搜索(未完待续)
文章目录排序排序算法的稳定性冒泡排序冒泡排序运作流程冒泡排序Python代码实现冒泡排序时间复杂度分析选择排序选择排序Python代码实现选择排序时间复杂度分析插入排序插入排序Python代码实现插入排序时间复杂度分析快速排序 排序 排序算法(Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的算法。 排序算法的稳定性 稳定排序算法会让原本有相等键值的记录维持其相对次序。即,如果使用的是一个稳定的排序算法,当存在两个相等键值的记录R和S,且在原本的列表中R出现在S之前,则在排序后的列
2020-07-23 19:05:45
1847
原创 Python数据结构-栈与队列
文章目录栈栈的Python代码实现顺序表实现链表实现队列队列的Python代码实现顺序表实现链表实现双端队列双端队列的Python代码实现顺序表实现链表实现 栈 栈(stack)(也称堆栈),是一种容器,可存入、访问、删除数据元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算,保证在任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。 由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO
2020-07-22 17:01:10
519
原创 Python数据结构-链表
文章目录链表的定义单向链表单向链表的Python代码实现单向链表类包含的操作链表节点的实现链表类的实现单链表与顺序表的对比 链表的定义 链表(Linked list)是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。而链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。 单向链表 单向链表也叫单链表,是链表中最简单的形式。
2020-07-20 16:30:45
245
原创 Python数据结构-顺序表
文章目录顺序表的形式基本顺序表元素外置顺序表顺序表的结构与实现一体式结构分离式结构三级标题四级标题五级标题六级标题 线性表是最基本的数据结构之一,它是某类元素的一个集合,还记录着元素之间的一种顺序关系。一组元素为一个序列,用元素在序列里的位置和顺序表示实际应用中的某种有意义的信息,或表示数据间的某种关系。 根据线性表的实际存储方式,可分为两种实现模型: 顺序表: 将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示。 链表: 将元素存放在通过链接构造起来的一系列存储块中。 顺序表的
2020-07-17 16:22:56
331
原创 Python数据结构与算法-概念引入
文章目录算法算法特性算法效率衡量时间复杂度与“大O记法”大O记法时间复杂度最坏时间复杂度时间复杂度基本计算规则常见时间复杂度及其之间关系Python内置类型性能分析列表和字典内置操作时间复杂度列表字典数据结构概念算法与数据结构的区别抽象数据类型(Abstract Data Type) 算法 算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。 一般地,算法处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用。 算法特
2020-07-09 16:50:19
171
原创 Python基础第七节—面向对象编程
文章目录面向对象编程面向过程和面向对象区别面向过程(Precedure Oriented)思维面向对象(Object Oriented)思维类与对象实例对象构造函数__init__()实例属性实例方法其他操作类对象类属性类方法静态方法__del__()方法(析构函数)和垃圾回收机制三级标题 面向对象编程 面向对象编程将数据和操作数据的方法封装在对象中,组织代码和数据的方式更加接近人的思维。Python完全支持面向对象的基本功能,如继承、多态、封装等。 面向过程和面向对象区别 面向过程(Precedure O
2020-07-05 01:55:35
381
原创 Python基础第六节—函数
函数用法和底层分析 Python函数的分类 1.内置函数 2.标准库函数:通过import导入库并使用里面的函数 3.第三方库函数:下载安装第三方库后,导入并使用里面的函数 4.用户自定义函数 函数的定义和调用 1.使用def定义函数。Python执行def时,会创建一个函数对象(存储在堆内存中),并绑定到函数名变量上。 2.参数列表:圆括号内是形式参数列表,形参不需要声明类型,也不需要指定函数返回值类型。即使无形参,也要有()。实参列表必须与形参一一对应。 3.若函数体中包含return语句,则结束函数执
2020-07-02 22:25:31
489
原创 Python基础第五节—循环
for循环和可迭代对象遍历 for 变量 in 可迭代对象: 循环体语句 可迭代对象包括:序列(字符串、元组、列表)、字典、迭代器对象(iterator)、生成器函数(generator)、文件对象。 字典的遍历 for x in d: 或 for x in d.keys(): #遍历字典中所有键 for x in d.values(): #遍历字典中所有值 for x in d.items(): 遍历字典中所有键值对 嵌套循环 生成九九乘法表: for i in range(1,10):
2020-07-02 21:52:34
2564
原创 Python基础第四节
字典 字典是”键值对“的无序可变序列,其中每个元素都是一个”键值对“,包含”键对象“和”值对象“。 就像可通过列表元素索引值获取对应对象,我们可通过”键对象“获取、删除、更新其对应的值对象。 键必须是不可变数据,如整数、浮点数、字符串、元组,不能是字典、列表、集合等可变对象, 键不可重复。若重复出现键,则后面的覆盖前面的。 字典的创建 方法1: a={‘a’:‘bc’,‘d’:‘fg’} b=dict(a=‘bc’,d=‘fg’) c=dict([(‘a’,‘bc’),(‘d’,‘fg’)]) d={}或d
2020-07-02 17:33:37
297
原创 Python基础第三节
可变字符串 引入io模块,用io.StringIo()生成可变的新字符串。 示例:s=‘abcde’ sio=io.StringIo(s) sio.getvalue(): 输出’abcde’ sio.seek(5): 输出5 sio.write(‘g’): 输出1 sio.getvalue(): 输出’abcdg’ 运算符总结 比较运算符:可连用,如: a=4 3<a<10 输出:True 位操作符:按位或 |, 1、0得1,0、0得0,1、1得1 按位与 &,1、0得0,0、0得0,1
2020-07-02 12:13:48
263
原创 Python基础第二节
Python基础第二节 链式赋值、系列解包赋值、常量 链式赋值:x=y=123 相当于x=123;y=123 系列解包赋值:a,b,c=4,5,6 相当于a=4;b=5;c=6 用系列解包赋值实现变量值互换:a,b=b,a Python不支持定义常量。 内置数据类型和基本算术运算符 变量类型:整型、浮点型、布尔型、字符串型 基本算术运算符:+、-、*、/(浮点数除法),//(整数除法)、%(取余)、**(幂) divmod(x,y):获得商和余数组成的元组 整数的不同进制+类型转换 除十进制外、还有二进制、
2020-07-02 00:19:42
514
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅