91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python排序算法之選擇排序怎么實現

發布時間:2023-04-24 17:32:52 來源:億速云 閱讀:107 作者:iii 欄目:開發技術

這篇“python排序算法之選擇排序怎么實現”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“python排序算法之選擇排序怎么實現”文章吧。

一、前言

初級排序算法是指幾種較為基礎且容易理解的排序算法。初級排序算法包括插入排序、選擇排序和冒泡排序3種。雖然它們的效率相對于高級排序算法偏低,但是在了解初級排序算法之后,再去學習相對復雜的高級排序算法會容易許多。

二、描述

選擇排序表示從無序的數組中,每次選擇最小或最大的數據,從無序數組中放到有序數組的末尾,以達到排序的效果。

選擇排序的平均時間復雜度是O(n2),最好情況下的時間復雜度和最壞情況下的時間復雜度都是O( n2 )。另外,它是一個不穩定的排序算法。選擇排序的過程很容易理解。如圖2-4所示,我們仍以遞增排序的算法為例,先遍歷未排序的數組,找到最小的元素。然后,把最小的元素從未排序的數組中刪除,添加到有序數組的末尾。

python排序算法之選擇排序怎么實現

因為最小的元素是1,所以1被添加到仍為空的有序數組末尾。

如圖2-5所示,我們繼續對剩余元素進行遍歷。這次,最小的元素是2。我們把它添加到已排序的數組末尾。由于已在有序數組中的元素必定小于未排序數組中的所有元素,所以這步操作是正確無誤的。

python排序算法之選擇排序怎么實現

如圖2-6所示,重復上述步驟,當未排序數組中只剩下一個元素時,把它添加到已排序的數組末尾,整個數組的排序就完成了。

python排序算法之選擇排序怎么實現

三、代碼實現

選擇排序代碼:

nums = [5,3,6,4,1,2,8,7]
res = []   #用于存儲已排序元素的數組
while len(nums): #當未排序數組內還有元素時,重復執行選擇最小數的代碼
 minInd = 0 #初始化存儲最小數下標的變量,默認為第一個數
 for i in range(1, len(nums)):
  if(nums[i] < nums[minInd]): #更新最小數的下標
    minInd = i
 temp = nums[minInd]
 nums.pop(minInd) #把最小數從未排序數組中刪除
 res.append(temp) #把最小數插入到已排序數組的末尾
print(res)

運行程序,輸出結果為:

[1,2,3,4,5,6,7,8]

在程序中,第一個for循環中的i代表了有序數組之后的第一個位置,也就是未排序數組中的第一個位置。隨后,再使用一個for循環,在未排序數組中找到最小值的下標。首先,把最小值下標minInd初始化為未排序數組中第一個元素的下標。隨后,遍歷整個數組,遇到比目前的最小值更小的元素時,更新下標即可。找出最小值后,把它和未排序數組中的第一個元素交換位置,這時它就成了有序數組中的最后一個元素。

以上就是關于“python排序算法之選擇排序怎么實現”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

卢龙县| 澎湖县| 瓮安县| 黄骅市| 蓝田县| 慈溪市| 延庆县| 当雄县| 棋牌| 咸宁市| 平乡县| 鹿邑县| 开封县| 荥阳市| 新田县| 香格里拉县| 西贡区| 华阴市| 西乌珠穆沁旗| 崇左市| 合水县| 昭觉县| 尼勒克县| 玛纳斯县| 三台县| 梅州市| 寿阳县| 固始县| 定州市| 信丰县| 永修县| 绍兴市| 长兴县| 博罗县| 美姑县| 五大连池市| 明星| 清流县| 茶陵县| 乌拉特前旗| 彰化县|