数据结构与算法---第一天
文章目录
算法引入
方法1–效率低
算法:面对问题时,将我们的思路用计算机程序写出来,告诉计算机怎么做,如何让计算机运行将题解答出来,这种思路解决方法就是算法。即计算的方法。
方法2
固定a与b后,c就确定了,所以可以将代码改进。
解决同一问题方法有多种算法,算法之间是有差别的。
算法效率衡量
时间复杂度
当两个程序执行效率不同时候,说明这两段程序基本运算数量是不同的。
程序运行总时间=基本运算数量乘以每个基本运算所用时间。即时间复杂度就是描述算法时间上的效率的。
算法是解决问题的思想,思想具备通用性,即体现在n上。
系数不影响走势,一般决定于n即可。
大O表示法就是n的三次方。
最坏时间复杂度与计算规则
即需要判断这个算法对于数据处理时候最理想的状况,即就是排好序的数据。以及最坏的状况,即无序要经过多次排序步骤才可以完成排序。
基本操作就是代表执行了一步。即O(1);
常见时间复杂度
python中代码执行时间测量模块timeit
Python列表类型不同操作的时间效率
而extend必须添加为一个列表,或者可迭代对象。
往队尾添加比队首快。
Python列表与字典操作的时间复杂度
数据结构引入
算法主要关注解决问题的思想与步骤,并不关心所处理的数据。数据结构就是在于已知一堆数据,如何能将他们组合起来。
即处理数据时候,数据的存储方式用什么保存,即最后的算法去查找时候就与这个有关。数据保存方式不同,最后通过算法查找如学生信息时候所用算法就不同,即对应数据复杂度也就不同。即数据与算法是分不开的。即对于一种数据到低用什么方式组织,是列表还是字典组织方式,即数据的组织方式不同,即数据结构不同,即一种数据如何保存,且保存形式是怎么样的,这就是数据结构。
当有一堆数据时候,这里边数据每个都应该是基本元素组成的,当将这些基本数据放在一起,如何组织时候,就是数据结构了。列表与字典已经是一种基本存储形式了,列表可以存储整形,浮点型,已经是一种基本数据的组合了,所以python中字典,列表,元组已经是python封装的一种高级数据结构形式了。即数据结构就是对基本数据类型的一种封装。
算法关注解决问题的思路,而数据结构关注算法所处理的数据到底是一种什么组织形式。
把原有的基本数据,与数据所支持的操作放在一起,形成整体,就是抽象数据类型。有一种面向对象感觉。
将新数据结构与其所支持的方法放在一起。就是抽象数据结构了。
本文地址:https://blog.csdn.net/qq_43498494/article/details/107295527