插入排序回顧:
#插入排序演算法:
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定義中根本沒涉及如何實現這些操作。例如 表 集合 圖及它們的操作,它們都可以看作抽象資料型別,就像整數 實數和布林量是資料型別一樣。整數 實數以及布林量有與它們相關的操作...