資料結構與演算法

2021-08-17 16:03:12 字數 2467 閱讀 3713

棧:是一種容器,可存入資料元素,刪除元素,先進後出

佇列:只允許在一端進行插入操作,而在另一端進行刪除操作的線性表,先進先出

時間複雜度:執行基本運算數量

最壞時間複雜度:演算法完成工作最多需要多少基本操作(提供了一種保障,表示在這裡一定可以完成)

最優時間複雜度:演算法完成工作最少需要多少基本操作、

時間複雜度的計算:

for i. in. rang(0,n):

for.  j. in rang(0,n):

c=1000-a-b

if a**2 +b**2==c**2:

print(a,b,c)

分析:迴圈用乘,基本步驟代表1,分之取最大,最後常數項和次要項省略,最後前面寫n

t(n)=n*n*(1+max(1,0)

=n^2*2

=o(n^2)

平均:2者差

氣泡排序:進入迴圈,前乙個與後乙個進行比較,前大後小的話進行交換eg:

#傳入乙個列表

n=len(list)

for i in range(n-

1):

#i代表迴圈次數,n-1就等於迴圈n次

for j in range(

0,n-

1-i):

#j代表列表索引

值,當i=0時,j從0變到n-2時才迴圈完然後i在等於1

# 每次比較一次,它就少一次,所以減j就好

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

list[j],list[j+1]=list[j+1],list[j]

選擇排序:找出最小值,然後進行一一排序

def select_sort(alist):

"""選擇排序"""

n = len(alist)

for j in range(n-1): # j: 0 ~ n-2

min_index = j#定義乙個索引值從0開始

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

if alist[min_index] > alist[i]:#第乙個值和下乙個值比較,如果第乙個值大,則比較大索引值就發生變化,目的在於找出最小值

min_index = i

alist[j], alist[min_index] = alist[min_index], alist[j]

插入排序:後乙個與前乙個比較,如果後乙個小,就交換位置:

def insert_sort(alist):

"""插入排序"""

n = len(alist)

# 從右邊的無序序列中取出多少個元素執行這樣的過程

for j in range(1, n):

# j = [1, 2, 3, n-1]

# i 代表內層迴圈起始值

i = j

# 執行從右邊的無序序列中取出第乙個元素,即i位置的元素,然後將其插入到前面的正確位置中

while i > 0:

if alist[i] < alist[i-1]:

alist[i], alist[i-1] = alist[i-1], alist[i]

i -= 1

else:

break

二分查詢:在有序的列表中,從中間進行查詢,如果n/2不等於你輸入的值,再進行分解,在查詢

def search(alist,item):

n=len(alist)

if n >0:

mind=n//2

if  alist[mind]==item:

return true

elif alist[mind]>item:

return  search(alist[:mind],item)

else: 

return. search(alist[mind+1:],item)

return false

資料結構與演算法 演算法 演算法和資料結構

資料結構與演算法 演算法 好吧,在這裡,您被優秀或優秀的軟體開發人員所隔開。在這種情況下,我會告訴您一開始或至少在我的情況下,並且我知道大多數時候,對於我認識的大多數人,您會覺得自己是乙個無能的人或白痴。基本上,我怎麼可能不理解這一點,然後您會感到沮喪。在這種情況下,我會告訴您情況並不像您想的那麼糟...

資料結構 資料結構與演算法01

1 求一組整數中的最大值。演算法 基本操作是 比較兩個數的大小 模型 仔細想想 你並不知道這個整數到底是多大?整數過大你該怎麼去表示?2 足協的資料庫管理的程式 演算法 需要管理的專案?如何管理?使用者介面?模型 3 資料與資料結構 資料 所有能被輸入到計算機中,並被計算機處理的符號的集合計算機操作...

資料結構 資料結構與演算法02

1 演算法設計的原則 設計演算法時,通常應考慮達到以下目標 1,正確性 2,可讀性 3,健壯性 4,高效率與低儲存量需求 1,正確性 規格說明 四個層次 a,程式中不含語法錯誤 b,程式對於幾組輸入資料能夠得出滿足要求的結果 c,程式對精心選擇的 典型 苛刻切帶有刁難性的幾組輸入資料能夠得出滿足要求...