演算法基礎 陣列 鍊錶 選擇排序

2021-10-20 07:42:30 字數 1695 閱讀 6709

1、說說記憶體的工作原理?

(1)記憶體:就像很多抽屜的集合體,每個抽屜都有位址,fe0ffeeb是乙個記憶體單元的位址

(2)將資料儲存到記憶體時,請求計算機提供空間,計算機給你乙個儲存位址。需要儲存多項資料時,有兩種儲存方式:陣列、鍊錶。

2、說說陣列的原理?

4個人去看電影,以陣列的形式將4個人儲存在座位上。要求:4個人必須連著,如果再來乙個人,就得重新找有5個連著的空位。當然,你可以預留10個位置。但超過10人,你還得找位置。

3、鍊錶的原理?

第一人知道第二人的位置,第二人知道第三人的位置,依次類推。可存在記憶體的任何位置,插入元素非常方便。

4、陣列、鍊錶的優缺點?

(1)陣列儲存方式:可以高效率的讀取元素。鍊錶儲存方式:可以高效率的插入、刪除元素

如果你找最後乙個元素,鍊錶你得乙個乙個,一直找到最後乙個。陣列找到第乙個,直接就跳到最後乙個了

(2)陣列用的多,它支援隨機訪問。很多情況都要求能夠隨機訪問。

5、演算法2:選擇排序

(1)第一種(從小到大):

# 感謝某某大佬,學習到了

defsort_list

(list):

for i in

range

(len

(list)-

1): min_sub = i

for n in

range

(len

(list

)-i):if

list

[min_sub]

>

list

[n+i]

: min_sub = n+i

list

[i],

list

[min_sub]

=list

[min_sub]

,list

[i]return

list

if __name__ ==

'__main__'

: a = sort_list([23

,5,0

,78,56

,55,77

,8,2

])print

(a)

(2)第二種(從小到大):

def

findsmallest

(arr)

: smallest = arr[0]

smallest_index =

0for i in

range(1

,len

(arr)):

if arr[i]

< smallest:

smallest = arr[i]

smallest_index = i

return smallest_index

defselectionsort

(arr)

: newarr =

for i in

range

(len

(arr)):

smallest = findsmallest(arr)

)return newarr

a = selectionsort([2

,3,6

,5,10

])print

(a)

演算法2 鍊錶,陣列,和選擇排序

計算機的記憶體就像是我們平時存放東西的儲物櫃一樣,我們把揹包之類的物品放入櫃子裡,每個櫃子有乙個專屬的編號,我們記住這個編號,然後根據編號就可以找到櫃子拿回屬於我們的物體。在計算機裡,就有很多這種櫃子,叫記憶體單元,每個櫃子的編號就是位址。那麼如何將資料存放到相應的位址內呢,有兩種基本方式,鍊錶和陣...

演算法初探 陣列 鍊錶與選擇排序

前端也要懂演算法,閱 演算法 有所得。1.記憶體的原理 相信我們經常會聽到 堆 棧 之類的字眼,那麼計算機的記憶體是什麼呢?當我們去游泳時,我們需要將東西存在保險櫃裡,可能東西比較多,乙個放不下,這時候就需要申請2個保險櫃,再將東西放在櫃子裡,手裡拿著開櫃的鑰匙。計算機的記憶體分配亦是如此,當我們需...

演算法講解 選擇排序 陣列鍊錶

陣列 使用陣列儲存item意味著所有item在記憶體中都是相連的。在陣列中儲存新的item可能很麻煩,because if 沒有了新空間,就得移動到記憶體的其他地方,因此新增新元素會很慢。陣列刪除元素也很麻煩,刪除元素後,必須將後面的元素前移。結決辦法1 預留空間。缺點 1 額外請求的位置可能用不上...