選擇排序是一個排序算法。
其核心為: 固定位置,選擇元素 ,即: 先從序列中,找到最小的元素,放在第一個位置,之后找到第二小的元素,放在第二個元素,以此類推,就可以完成整個排序工作了。
常用于以下場景:
? 將若干個數按照從小大到大或從大到小進行排序
實例:
將下列列表中的數字從小到大進行排序。
List
=
[
1
,
5
,
7
,
4
,
9
]
for
i
in
range
(
0
,
5
)
:
min
=
i
for
j
in
range
(
i
,
5
)
:
if
List
[
min
]
>
List
[
j
]
:
min
=
j
List
[
i
]
,
List
[
min
]
=
List
[
min
]
,
List
[
i
]
print
(
List
)
#輸出結果為[1, 4, 5, 7, 9]
最后,我們對用戶輸入的數據進行排序:
def
Order
(
self
)
:
for
i
in
range
(
0
,
n
-
1
)
:
min
=
i
for
j
in
range
(
i
+
1
,
n
)
:
if
List
[
min
]
>
List
[
j
]
:
min
=
j
List
[
i
]
,
List
[
min
]
=
List
[
min
]
,
List
[
i
]
print
(
List
)
List
=
list
(
input
(
'please input some numbers:'
)
)
n
=
len
(
List
)
Order
(
List
)
代碼解析:
1、定義一個函數Order,然后調用它
def
Order
(
)
:
pass
Order
(
)
2、獲取用戶輸入,并將用戶輸入轉化為列表;得到列表的長度
def
Order
(
self
)
:
pass
List
=
list
(
input
(
'please input some numbers:'
)
)
n
=
len
(
List
)
Order
(
List
)
3、設置第一個遍歷,使得:在列表的第一個位置存放此隊列的最小值
聲明一個變量 j 等于列表的第一個坐標值0
設置一個變量min,用來表示該列組中最小數的坐標
從第一個位置0坐標開始,和它后邊所有的元素一一比對,如果發生了后邊的坐標對應的值更小,則將 min = j ,然后用此時最小值min再跟后邊的數比較,完成全部比對以后,此時min位置所對應的值就是此列表上最小的數。
def
Order
(
self
)
:
for
j
in
range
(
1
,
n
)
:
if
List
[
0
]
>
List
[
j
]
:
min
=
j
List
[
0
]
,
List
[
min
]
=
List
[
min
]
,
List
[
0
]
print
(
List
)
List
=
list
(
input
(
'please input some numbers:'
)
)
n
=
len
(
List
)
Order
(
List
)
4、設置第二個遍歷:從第二個數開始依次把第一步的邏輯走一遍
使得列表中的數字從小到大排列。
def
Order
(
self
)
:
for
i
in
range
(
0
,
n
-
1
)
:
min
=
i
for
j
in
range
(
i
+
1
,
n
)
:
if
List
[
min
]
>
List
[
j
]
:
min
=
j
List
[
i
]
,
List
[
min
]
=
List
[
min
]
,
List
[
i
]
print
(
List
)
List
=
list
(
input
(
'please input some numbers:'
)
)
n
=
len
(
List
)
Order
(
List
)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
