簡單選擇排序
寫在最後的話:
這裡是一段防爬蟲文字,請讀者忽略。
本文原創首發於csdn,作者idys
部落格首頁:
降序
和降序相反
import random
deffull_of_list
(the_list)
:while
true:0
,100))
iflen
(the_list)
==20
:break
a_list =
full_of_list(a_list)
print
(a_list)
count =
0for i in a_list:
max = i
k = count
j = count
while k <
len(a_list)
:if a_list[k]
> max:
max = a_list[k]
j = k
k +=
1if j != count:
a_list[count]
, a_list[j]
= a_list[j]
, a_list[count]
count +=
1print
(a_list)
[22, 55, 54, 30, 97, 93, 86, 47, 59, 44, 72, 90, 29, 3, 86, 85, 19, 48, 76, 75]
[97, 93, 90, 86, 86, 85, 76, 75, 72, 59, 55, 54, 48, 47, 44, 30, 29, 22, 19, 3]
在一輪迴圈中,既求其最大值又求其最小值,然後將最大值放在前面,最小值放在後面
如果在某一輪迴圈中,最大值等於最小值那麼結束迴圈
判斷其是否交換時,直接判斷其值是否不等,而不必判斷其索引情況
import random
deffull_of_list
(the_list)
:while
true:0
,100))
iflen
(the_list)
==20
:break
a_list =
full_of_list(a_list)
print
(a_list)
for i in
range
(len
(a_list)//2
):max_index= i
min_index =
-i -
1 origin_min_index = min_index
for j in
range
(i+1
,len
(a_list)
-i):
if a_list[j]
> a_list[max_index]
: max_index = j
if a_list[
-j-1
]< a_list[min_index]
: min_index =
-j-1
if a_list[max_index]
== a_list[min_index]
:break
if max_index != i:
a_list[max_index]
, a_list[i]
= a_list[i]
,a_list[max_index]
if i ==
len(a_list)
+ min_index:
min_index = max_index
if a_list[min_index]
!= a_list[origin_min_index]
: a_list[min_index]
, a_list[origin_min_index]
= a_list[origin_min_index]
,a_list[min_index]
print
(a_list)
[99, 78, 49, 100, 42, 37, 75, 86, 61, 93, 84, 3, 92, 85, 33, 70, 20, 78, 33, 59]
[100, 99, 93, 92, 86, 85, 84, 78, 78, 75, 70, 61, 59, 49, 42, 37, 33, 33, 20, 3]
python選擇排序之簡單選擇排序
簡單選擇排序 從無序數列中選取最小的元素和無序數列中的第乙個元素交換,每輪都可以確定最小元素的位置。1.迴圈取無序序列中的第乙個元素 2.迴圈和後面的元素一一比較,直到選到乙個最小的數,將它放在第一位 將無序數列變有序 coding utf 8 def selectsort series for i...
選擇排序之簡單選擇排序
選擇排序是幾大排序演算法中的一種,選擇排序的思想如下 每趟從待排序的記錄序列中選擇關鍵字最小的記錄放置到已排序表的最前位置,直到全部排完。選擇排序大概有兩種,今天我們說其中一種 簡單選擇排序。1 基本思想 在要排序的一組數中,選出最小的乙個數與第乙個位置的數交換 然後在剩下的數當中再找最小的與第二個...
選擇排序之簡單選擇排序
選擇排序,是一種簡單直觀的排序演算法 它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。演算法描述 1 首先從待排序元素中選出最小乙個,下標min 2 如果m...