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 額外請求的位置可能用不上...