python實現選擇排序

2021-10-03 21:06:39 字數 2343 閱讀 7574

將一組資料按照從小到大(或者從大到小)的順序排序, 氣泡排序法請參考:

選擇排序法更加簡單粗暴, 從第乙個數字開始, 直接從數列中找到最小的數字, 將最小的數字放到當前位置, 直到數列為空.

首先, 我們還是建立乙個生成隨機數組的程式: 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 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...