基础知识复习,查漏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)

 

posted @ 2019-01-21 12:25  zhaijihai  阅读(158)  评论(0编辑  收藏  举报