python實現(xiàn)選擇排序?

python實現(xiàn)選擇排序?

? 假設(shè)你有一個因為列表,上面記錄你歌曲的播放數(shù)量,現(xiàn)在需要對音樂列表進行排序,按照播放數(shù)量進行依次排序,并放在一個新的列表中。那么我們怎么用計算機語言實現(xiàn)呢。選擇排序即是每次對列表進行查找,并添加到新的列表中。

因此選擇排序的運行時間為O(n^2)。雖然速度不是很快,但是很靈活。

?

"""
選擇排序
"""


def findSmallest(arr):
    """
    每次將列表中最小的元素索引返回
    """
    small = arr[0]
    loop = 0

    for i in range(len(arr)):

        if arr[i] < small:

            small = arr[i]
            loop = i

    return loop


def selectionSort(arr):
    """
    每次循環(huán)將列表對象傳入findSmallest函數(shù)中,接收到當(dāng)前列表值最小的索引
    然后將該值從原列表刪除,添加到新列表中,最后返回一個有序的新列表
    """
    newArr = []

    for i in range(len(arr)):

        loop = findSmallest(arr)
        newArr.append(arr.pop(loop))

    return newArr


if __name__ == "__main__":

    arr = [2, 4, 1, 6, 10, 3]

    new_arr = selectionSort(arr)

    print(new_arr)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AGI閱讀 16,003評論 3 119
  • 吾心愿為父母令,自己作詩眾人醒。 看破天下如做帽,一切只想忠情晶。
    亂花漸欲迷人眼閱讀 163評論 0 0
  • ——高俊文集《擁有》序言 《擁有》我認真地拜讀了,并且總結(jié)了三個“最”。 第一個“最”,我最喜歡該書中...
    秦占勇閱讀 224評論 0 1
  • 作者:瓏夫心理--陳剛,姜桂芹 ----家道建設(shè)系列作品 在中國傳統(tǒng)中,“家庭”開始于“結(jié)婚”這樣一種儀式...
    35d9e7370171閱讀 290評論 0 0
  • 編譯命令:<%@%> page、include、taglib 動作命令:<%jsp:xxx %> include ...
    Yoshikit閱讀 211評論 0 0