資料結構與演算法(二十一)

2021-10-18 20:14:45 字數 856 閱讀 9979

插入排序回顧:

#插入排序演算法:

definsertsort

(alist)

:for index in

range(1

,len

(alist)):

currentvalue = alist[index]

position = index

while position >

0and alist[position-1]

> currentvalue:

alist[position]

= alist[position-1]

#將比它大的後移

position = position -

1

alist[position]

= currentvalue

**實現:

b =

len(a)

#列表長度

gap = b //

2#初始步長設定為總長度的一半

while gap >=1:

for i in

range

(b):

j = i

while j>=gap and a[j-gap]

> a[j]

:#在每一組裡面進行直接插入排序

a[j]

,a[j-gap]

= a[j-gap]

,a[j]

j-= gap

gap=gap//

2#更新步長

資料結構(二十一)

現在哈利 波特的手裡有一本教材,裡面列出了所有的變形魔咒和能變的動物。老師允許他自己帶乙隻動物去考場,要考察他把這只動物變成任意乙隻指定動物的本事。於是他來問你 帶什麼動物去可以讓最難變的那種動物 即該動物變為哈利 波特自己帶去的動物所需要的魔咒最長 需要的魔咒最短?例如 如果只有貓 鼠 魚,則顯然...

第二十一章 資料結構

知識點 1 棧 stack 資料先進後出。方法 is empty 查詢資料是否為空 push 新增資料 pop 移除資料 peek 返回頂部元素 size 查詢資料量 2 佇列 queue 資料先進先出。方法 enqueue 新增元素 dequeue 移除元素 is empty 查詢是否為空 siz...

二十一 資料結構學習筆記 1

一.抽象資料型別 抽象資料型別 abstract data type,adt 是一些操作的集合。抽象資料型別是數學的抽象,在adt定義中根本沒涉及如何實現這些操作。例如 表 集合 圖及它們的操作,它們都可以看作抽象資料型別,就像整數 實數和布林量是資料型別一樣。整數 實數以及布林量有與它們相關的操作...