將一組資料按照從小到大(或者從大到小)的順序排序, 氣泡排序法請參考:
選擇排序法更加簡單粗暴, 從第乙個數字開始, 直接從數列中找到最小的數字, 將最小的數字放到當前位置, 直到數列為空.
首先, 我們還是建立乙個生成隨機數組的程式: random_list.py
#-*- coding:utf-8 -*-
# created date: 2020/03/10
import random
defrandom_list
(n):
"""返回乙個長度為n的隨機數列表,數值為[0,1000)"""
print
("input number is :{}\n"
.format
(n))
ilist =
for num in
range
(n):
1000))
return ilist
if __name__ ==
"__main__"
: ilist = random_list(10)
print
(ilist)
然後建立選擇排序演算法的程式:selectsort.py
#-*- coding:utf-8 -*-
# created date:2020/03/14
from random_list import random_list
import timeit
import sys
# 呼叫sys庫ar**函式從外部傳入引數
tt_num = sys.ar**[1]
print
("\ntotal number is :{}\n"
.format
(tt_num)
)# 呼叫從random_list程式中匯入的random_list函式
ilist = random_list(
int(tt_num)
)def
selectsort
(ilist)
:"""定義選擇排序法函式"""
iflen
(ilist)
<=1:
return ilist
for idx in
range(0
,len
(ilist)-1
):if ilist[idx]
!=min
(ilist[idx:])
: min_idx = ilist.index(
min(ilist[idx:])
) ilist[idx]
, ilist[min_idx]
= ilist[min_idx]
, ilist[idx]
return ilist
if __name__ ==
"__main__"
:print
("#"*20
+"\nsuccessful!\n"
+"#"*20
)print
("the original datas are: {}"
.format
(ilist)
)print
("the sorted results are: {}"
.format
(selectsort(ilist)))
print
(timeit.timeit(
"selectsort(ilist)"
,"from __main__ import selectsort, ilist"
, number =
100)
)
在命令列輸入指令:
python selectsort.py 10 #對輸入的10個隨機數進行排序
列印的排序結果為:
total number is :10
input number is :10
####################
successful!
####################
the original datas are: [832, 708, 224, 125, 315, 673, 26, 317, 157, 752]
the sorted results are: [26, 125, 157, 224, 315, 317, 673, 708, 752, 832]
0.00037415000042528845
Python實現選擇排序
選擇排序 一種簡單直觀的排序演算法。工作原理 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘的未排序的元素中繼續尋找最小 大 元素,然後放到已排序的末尾。直到所有元素均排序完畢。優點 選擇排序與資料移動有關。如果某個元素位於正確的最終位置上,則它不會被移動。選擇排序每...
Python實現選擇排序
實現思路 將乙個序列分為兩部分,前面是有序序列,後面是無序序列,不斷的將後面的無序序列中的最小值新增到前面的有序序列中,直到後面的無序序列中沒有值,開始的時候將第乙個值作為有序序列。實現 arr 7,4,3,67,34,1,8 length 7 defselect sort arr n len ar...
python實現選擇排序
選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...