基础知识复习,查漏1
continue
中断此次循环,进行下一次循环
有时候用法与else一样,但推荐用continue
break
终止当前循环
数字的函数处理
import math
math.floor(2.5)
2
math.ceil(2.5)
3
math.round()
4舍6入5取偶
pow(x,y)等于x**y
列表list,链表,queue(队列),stack(栈)的差异:
动态语言:赋值即定义
强语言,类型强制转化,1+字符串
算法优化:
利用标签提升效率,利用互斥条件
命名元组namedtuple:
利用元组程封装类更加轻巧
冒泡算法总结:
- 冒泡法需要数据一轮轮比较
- 可以设定一个标记判断此轮是否有数据发生交换,如果没有,可以结束排序,如果发生交换,将继续下一轮排序
- 最差的排序情况是,初始排序与目标顺序完全相反,遍历次数1,.....n-1和n(n-1)/2
- 最好的排序情况是,初始顺序与目标顺序完全相同,遍历次数n-1
- 时间复杂度O(n²)
list_1 = [2,3,5,1,4,7] count = 0 count_s = 0 for m in range(len(list_1)): tag = False for i in range(len(list_1)-m-1): count += 1 if list_1[i] > list_1[i+1]: list_1[i],list_1[i+1]=list_1[i+1],list_1[i] tag = True #如果此处没有发生数据交换,则直接进行下一轮,提升效率 count_s += 1 if not tag: break print(list_1) print(count_s) print(count)