排序演算法 選擇排序演算法分析與實現 Python

2021-07-09 03:20:29 字數 1336 閱讀 4863

december 23, 2015 12:31 pm

思想 選擇排序的思想非常直接,不是要排序麼?那好,我就從所有序列中先找到最小的,然後放到第乙個位置。之後再看剩餘元素中最小的,放到第二個位置……以此類推,就可以完成整個的排序工作了。可以很清楚的發現,選擇排序是固定位置,找元素。相比於插入排序的固定元素找位置,是兩種思維方式。不過條條大路通羅馬,兩者的目的是一樣的。

簡單排序處理流程:

( 1 )從待排序序列中,找到關鍵字最小的元素;

( 2 )如果最小元素不是待排序序列的第乙個元素,將其和第乙個元素互換;

( 3 )從餘下的 n - 1 個元素中,找出關鍵字最小的元素,重複( 1 )、( 2 )步,直到排序結束。

#王淵#2015.12.21

#email:[email protected]

from pylab import *

defseletesort

(data):

length = data.__len__() #獲取資料長度

idx = true

#標記依次遍歷是否有資料交換,如果沒有,排序完成

for i in range(length):

idx = i

for j in range(i,length):

if(data[j]#如果當前值小於下乙個值,記錄索引

idx = j

data[i],data[idx] = data[idx],data[i] #交換順序,一次交換

return data

data = array([48,1,16,62,73,88,24,59,99,0,35])

print("the original data is : ", data)

data = seletesort(data)

print("the result of sorted data is : ", data)

執行結果:

the original data is :  [48116

6273

8824

5999

035]

the result of sorted data is : [ 0116

2435

4859

6273

8899]

演算法 選擇排序,例項分析選擇排序演算法

選擇排序,將乙個序列看做兩個部分,前面有序,後面無序,每次在後面的無序序列中,選擇乙個最小的元素,交換到前面有序序列的末尾,直到無序序列全部完成交換,即可完成排序 選擇排序是不穩定的排序演算法 有乙個序列 5,2,0,1,3,1,4 第一趟排序 第二趟排序 此時我們看到,經過兩趟排序,前面兩個元素 ...

排序演算法 選擇排序演算法實現

1 時間複雜度 o n 2 2 選擇排序主要操作是交換和比較 交換次數在0 n 1 總比較次數 n n 1 n 2 n 3 1 n n 1 2 因為交換需要的cpu時間 比較需要的cpu時間 當n比較少時,選擇比冒泡快,減少了不必要的交換,每次交換僅僅是最大值或者最小值與序列起始位置進行狡猾。3 演...

排序演算法 簡單選擇排序演算法實現及分析

簡單選擇排序 selection sort 就是通過n 1次關鍵字排序之間的比較,從n i 1個記錄中選擇關鍵字最小的記錄,並和第i 1 i n 記錄交換。這是一般書上的定義。實際上選擇排序,就是每一輪選者乙個最值出來,然後在剩下的資料中又選擇乙個最值出來,直到資料被選擇完畢。這就是所謂的簡單選擇排...