當前位置:
首頁 > 最新 > 演算法——選擇排序

演算法——選擇排序

基本的數據結構有數組和鏈表,本文主要闡述一下數組和鏈表的優缺點。以及理解選擇排序。


數組和鏈表

內存就像是是一個一個的抽屜,每一格抽屜有一個地址。需要存儲空間時,計算機會給一個存儲地址,就相當於將數據存在一個抽屜中。

數組和鏈表是基本的存儲方式,它們有各自的優缺點。

使用數組意味著所有的數據在內存中是相連的。而鏈表的元素可以存儲在內存沒有被佔有的任何空間內,鏈表的每個元素都存儲了下一個元素的地址,從而使得一系列的隨機的內存地址串在了一起。

只要有足夠的內存空間,就能為鏈表分配內存。

當同時讀取所有元素時,鏈表的效率很高。但當你需要跳躍讀取,也就是查詢時,鏈表的效率就很低了。

數組,則很方便讀取每一個元素的內容。因為知道第一個,就知道了所有的地址。它們是連在一起的。

插入多,讀取少,用鏈表;插入少,讀取多,用數組。

插入數據時:鏈表更方便,只需要修改它前面的那個元素指向的地址就可以了。而使用數組時,必須將後面的元素都向後移動。如果空間不足,還要重新複製新的空間。

刪除數據時:鏈表更好一些。只需要將前一個元素指向的地址更改即可。使用數組,則必須將後面的元素都向前移動。

不過因為數組支持隨機訪問,所以在很多情況下為了能獲得更快的讀取速度,還是使用數組。


選擇排序的工作原理是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完。

O(n)意味著查看列表中每個元素一次的話,選擇排序的時間複雜度為O(n*n),也就是O(n2)

選擇排序的代碼為:


計算機內存猶如一大堆抽屜。

需要存儲多個元素時,可使用數組或鏈表。

數組的元素都在一起。

鏈表的元素是分開的,其中每個元素都存儲了下一個元素的地址。

數組的讀取速度很快。

鏈表的插入和刪除速度很快。

在同一個數組中,所有元素的類型都必須相同(都為int、double等)。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 代碼綜合征 的精彩文章:

TAG:代碼綜合征 |