控制流程:顺序、条件、循环
控制流程:顺序、条件、循环
枚举法
for a in range(0,1001):
搜索
二分查找/折半查找
有序顺序表
一上来定位中间位置
取得中间元素
7位于序列的中间位置起始是坐标最前面为0
终止位置为8
1 3 4 6 7 8 10 13 14
时间复杂度
二分对象 有序
时间复杂度
算法的五大特性:输入、输出、有穷性、确定性、可行性
算法时间复杂度:描述算法时间的多少
不会进行函数调用的步骤才叫做基本步骤。
少用加号
数据组织方式
一组数据如何保存 数据结构
抽象数据类型:确定数据组织形式,数据上的一组操作,只有相应的接口。
排序算法的稳定性:将原有相等键值的记录维持相对次序。
数据结构与算法:
算法是一种独立的解决问题的方法和思想,语言并不重要,重要的是思想
算法的五大特性:
1.输入:算法具有0个或多个输入
2.输出:算法至少有1个或多个输出
3.有穷性:算法在有限的步骤之后就会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间范围内
4.确定性:算法中的每一步都有确定性的含义,不会出现二义性
5.可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成
消耗时间大小:
O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)
python内置类型性能分析:
timei模块
可以用来测试一小段python代码的执行速度
class timeit.Timer(stmt='pass',setup='pass',timer=<timer function>)
Timer:是测量小段代码执行速度的类
stmt:参数是要测试的代码语句
setup:参数是运行代码时需要的设置
timer:参数是一个定时函数,与平台有关
时间复杂度
写代码开发的工作,做为一场战争的话,
写出来的代码,相当于士兵与武器
故,数据结构与算法是一名程序开发人员的必备的基本功,不是一
算法,就是让计算机把问题解决出来,计算的方法
算法是计算机处理信息的本质,因为计算机程序本质是一个算法来告诉计算机确切的步骤来执行一个指定的任务。
一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用
算法是独立存在的一种解决问题的方法与思想
对于算法而言,实现的语言并不重要,重要的是思想。
算法可以有不同的语言描述实现版本(如C描述,C++描述,python描述等),我们现在是在python语言进行描述实现
算法的五大特性:
输入:算法具有0个或多个输入
输出:算法至少有1个或多个输出
有穷性:算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在接受的时间内完成
确定性:算法中的每一步都有确定的含义,不会出现二义性
可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成