基礎知識復習,查漏1
阿新 • • 發佈:2019-01-21
冒泡法 有時 復雜度 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