4.python 列表方法 及 问题规模评估

PDF笔记

列表的方法有 append()尾追加元素,()内是内容,不能指定位置,指定位置可以用insert   count(xx) xx元素出现的次数 没有返回 0
extend尾追加列表, 与+的区别在于: +是新创建列表加入两个列表副本, extend是直接修改原列表.  extend效率更高!
index(xx) 取列表中第一个xx的下标 ,没有则抛异常
pop(num),如果不加num默认弹出最后一个,没有抛异常.python没有push append来代替
remove(xxx)删除xxx第一个匹配的,没有没有抛异常.不论结果,都不返回值
.sort()排序 无返回值,x.sort(key=len) ,x.sort(reverse=True)
 cmp(x,y) x>y返回正1 x<y返回-1 相等返回0
PDF page61

元组

必由()和,组成,即使只有一个元素.eg(5 ,) (5)和5没有区别,但前者加个逗号就是元组
tuple(序列或者字符串)是元组的list,把序列转换成元组
元组分片还是元组,没有别的方法

元组存在的两个意义
1.元组可以在映射当键使用,列表则不行.
2.很多内建函数的返回值就是元组.

课程笔记

第6节

教授爆了一个猛料说内学期最重要的东西:computer can be wrong
本质还是人会犯错,保持怀疑精神.
还有牛顿法求根比逐次法强N倍

第7节

列表 List1 = List2 改变List1后,2会变吗,  我以为两个是独立的对象,=仅是拷贝赋值答案是 会变
List1和List2是同一内存. But, 我重新给L1赋值时eg: L1=[]     此时 L2不为空还等于原有值.原因就是 L1重新赋值时,创建的是新对象.


字典类型
可变类型,字典没有顺序和整数下标,用的是Key和Value  前key后value , value的查找是用hash散列查找的
用dict来创建字典 eg: d = dict(name='XiaoMing',age=24),字典用{ }来括

提炼函数
模块化处理的必须  练习:已知三角形底和高(浮点型),求斜边

效率
效率就是算法的选择 
如何用高效率的方法来解决问题,评估算法的两个标准: 时间 和 空间,一般时间更受关注
计算时间取决于:计算基本步骤数和输入数规模
计算基本步骤:最坏情况  最好情况 平均情况     一般使用最坏情况

第8节

随着问题规模的变大,运行时间的变化, O表示随着输入规模增加,函数增长上界
对于递归问题规模判断,用代数代入求解
1000规模的问题  log(n) 10ns  线性n 1000ns 即 1sec   n2平方1milsec 即16sec  2的n次规模10的284次年!
评估问题的推算明明就是高数的极限计算,简单问题勉强还有应付,当年讲高数的时候为什么就不能结合计算机问题讲讲呢......主要还是怪自己没学好

第9节

折半查找基本上就是之前逐次逼近的翻版,折半查找的前提是已经有序数列
对数算法的模版基本都是
1. 找中点(或者其它点)
2. 判断这个点是否是想要的值
3. 若不是,将问题缩小,重复上边的步骤

选择排序:找最小的放第一个位置,然后找除第一外最小的放第二个位置....
冒泡排序:从第一个依次比较两个相邻的,把大的放后边.第一次后最大的在最后.第二回比较只比前n-1个.
教授说选择比冒泡快 虽然都是n的平方.开始觉得肯定是选择快冒泡那么2,但忽然想想它每次做的交换都是有用的,但还是选择更直接一点.有空要试一下,,用不同的结构想到冒泡可以有地方可以优化,但教授爆料说下节,将优化选择排序,汗.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值