演算法學習(一)時間複雜度 二分 冒泡 選擇 插入

2021-08-28 07:24:36 字數 1339 閱讀 7697

一、時間複雜度:常數運算元量的指標(big o)最差情況下

只要高階項

無序[n]排序

二、二分查詢:

先排序,從中間開始找

最多是三、將m插入n:

先排序;使用兩個指標a,b

四、氣泡排序:

每次比較兩個位置上的數,將較大的移到右側

def bubblesort(array):

n = len(array)

if (array == none) or (n < 2):

return array

for i in range(n - 1):

for j in range(n - 1 - i):

if array[j] > array[j + 1]:

array[j], array[j + 1] = array[j + 1], array[j]

return array

五、選擇排序:

依次找到最小的值排在最左邊

def selectionsort(array):

n = len(array)

if (array == none) or (n < 2):

return array

for i in range(n - 1):

minindex = i

for j in range(i + 1, n):

minindex = j if array[j] < array[minindex] else minindex

array[i], array[minindex] = array[minindex], array[i]

return array

六、插入排序

def insertionsort(array):

n = len(array)

if (array == none) or (n < 2):

return array

for i in range(1, n):

for j in range(i, 0, -1):

if array[j - 1] > array[j]:

array[j], array[j - 1] = array[j - 1], array[j]

else:

break

return array

最好情況(已經排好序):最差情況(逆序):

演算法(一)時間複雜度

演算法很重要,但是一般情況下做移動開發並不經常用到,所以很多同學早就將演算法打了個大禮包送還給了老師了,況且很多同學並沒有學習過演算法。這個系列就讓對演算法頭疼的同學能快速的掌握基本的演算法。過年放假階段玩了會遊戲nba2k17的生涯模式,沒有比賽的日子也都是訓練,而且這些訓練都是自發的,沒有人逼你...

演算法(一)時間複雜度

1.演算法的效率 雖然計算機能快速的完成運算處理,但實際上,它也需要根據輸入資料的大小和演算法效率來消耗一定的處理器資源。要想編寫出能高效執行的程式,我們就需要考慮到演算法的效率。演算法的效率主要由以下兩個複雜度來評估 時間複雜度 評估執行程式所需的時間。可以估算出程式對處理器的使用程度。空間複雜度...

一 時間複雜度

一 時間複雜度計算規則 1.基本操作,即只有常數項,其時間複雜度為o 1 比如if,print 與規模n無關 2.順序結構 按加法計算 3.迴圈結構,按乘法計算 4。分支結構,時間複雜度取最大值。二 常見時間複雜度與大小關係 常數項 o 1 12線性項 o n 2n 3平方項 o n 2 4n 3 ...