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

2021-10-06 18:24:54 字數 842 閱讀 2568

陣列:

使用陣列儲存item意味著所有item在記憶體中都是相連的。在陣列中儲存新的item可能很麻煩,because if 沒有了新空間,就得移動到記憶體的其他地方,因此新增新元素會很慢。陣列刪除元素也很麻煩,刪除元素後,必須將後面的元素前移。

結決辦法1 :預留空間。

缺點:1、額外請求的位置可能用不上。這將會浪費記憶體。【佔著**不拉*】相信你能猜測到啥意思 xixi

2、if 預留空間還不夠,還是得轉移。

結決辦法2 :使用鍊錶

鍊錶:

鍊錶中的元素可儲存在記憶體中的任何地方。鍊錶中的每個元素都儲存了下乙個元素的位址,從而使一系列隨機記憶體位址串在一起。 使用鍊錶新增元素很容易,只需將其放入記憶體,並將位址儲存到前乙個元素中就ok了,注意:使用鍊錶不需要移動元素。刪除操作:鍊錶也是更好的選擇,because 刪除元素只需修改前乙個元素指向的位址即可。

總結:

陣列讀取的執行時間 o(1) 插入o(n) 刪除 o(n)

鍊錶讀取的執行時間 o(n) 插入o(1) 刪除 o(1)

注意下哈。。。 再同乙個陣列中,所有元素的型別都必須相同(都為int 、double等) 弊端 引出集合

下面展示一些內聯**片

public int sort(int sourcearray) 

}// 將找到的最小值和i位置所在的值進行交換

if (i != min)

}return arr;

}

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

1 說說記憶體的工作原理?1 記憶體 就像很多抽屜的集合體,每個抽屜都有位址,fe0ffeeb是乙個記憶體單元的位址 2 將資料儲存到記憶體時,請求計算機提供空間,計算機給你乙個儲存位址。需要儲存多項資料時,有兩種儲存方式 陣列 鍊錶。2 說說陣列的原理?4個人去看電影,以陣列的形式將4個人儲存在座...

氣泡排序 陣列 鍊錶

對一組資料排序,例如 5 2 3 1 4 int flag 0,temp int s 10 定義陣列並賦值 for int i 0 i 10 i if flag 0 break 上述 外層迴圈控制迴圈的次數,最壞的情況下迴圈10次排序完成 內層迴圈控制比較個數 flag用來判斷是否發生交換,如果沒發...

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

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