1. 程式人生 > >排序演算法—選擇排序演算法分析與實現(Python)

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

December 23, 2015 12:31 PM

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

( 1 )從待排序序列中,找到關鍵字最小的元素;
( 2 )如果最小元素不是待排序序列的第一個元素,將其和第一個元素互換;
( 3 )從餘下的 N - 1 個元素中,找出關鍵字最小的元素,重複( 1 )、( 2 )步,直到排序結束。
這裡寫圖片描述

#SeleteSort.py
#王淵
#2015.12.21
#Email:[email protected]

from pylab import *


def SeleteSort(data):
    length = data.__len__()                             #獲取資料長度
    idx = True                                          #標記依次遍歷是否有資料交換,如果沒有,排序完成
    for i in range(length):
        idx = i
        for
j in range(i,length): if(data[j]<data[idx]): #如果當前值小於下一個值,記錄索引 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 :  [48  1 16 62 73 88 24 59 99  0 35]
The result of sorted data is :  [ 0  1 16 24 35 48 59 62 73 88 99]