算法---排序
1.常見的時間復雜度(按耗費的時間排序,時間耗費越少效率越高)
O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n2logn)<O(n3)
? 循環減半就是(O(logn))
2.冒泡排序
li = [6,8,9,7,5,3]def bubble_sort(li):for i in range(len(li)-1):for j in range(len(li)-i-1):if li[j] > li[j+1]:li[j], li[j+1] = li[j+1], li[j]
3.冒泡排序優化
def bubble_sort_1(li):for i in range(len(li)-1):exchange = Falsefor j in range(len(li)-i-1):if li[j] > li[j+1]:li[j], li[j+1] = li[j+1], li[j]exchange = Trueif not exchange:#如果沒有執行交換,說明已經是有序狀態了,無需繼續排序了return4.快速排序
data = [7,9,5,3,1,4,89] def partition(data, left, right):left = 0right = len(data)tmp = data[left]while left < right:while left < right and data[right] >= tmp:right -= 1data[left] = data[right]while left < right and data[left] <= tmp:left += 1data[right] = data[left]data[left] = tmpreturn left?
轉載于:https://www.cnblogs.com/wt11/p/6530183.html
總結
- 上一篇: Java Script 学习笔记(一)
- 下一篇: HTML入门第二天