1. 程式人生 > >基礎知識復習,查漏1

基礎知識復習,查漏1

冒泡法 有時 復雜度 floor 數字 pow div 總結 交換

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)

基礎知識復習,查漏1