1. 程式人生 > >python之選擇排序

python之選擇排序

pytho 分享 技巧 index for spa sort odin 介紹


參考博客:
1,http://www.cnblogs.com/luchen927/archive/2012/02/27/2367108.html
2,http://www.cnblogs.com/ucos/p/5871354.html

思路:
從所有序列中先找到最小的,然後放到第一個位置。之後再看剩余元素中最小的,放到第二個位置……以此類推,
就可以完成整個的排序工作了。可以很清楚的發現,選擇排序是固定位置,找元素。
前面介紹插入排序是固定元素,找位置。兩種排序的思想是不太一樣的。

實現技巧:
選擇排序註意點(假設第一層循環變量為:i;第二層循環變量為:j):
1,[0,i-1]是已經排序好的元素。,
2,定義一個變量,用來記錄本次循環下找到的最小元素的下標。

3,第二層循環是從[i,length -1]中找到最小元素的下標,用來與i元素交換。

Python代碼:
# coding=utf-8

‘‘‘
選擇排序:
思路:
從所有序列中先找到最小的,然後放到第一個位置。之後再看剩余元素中最小的,放到第二個位置……以此類推,
就可以完成整個的排序工作了。可以很清楚的發現,選擇排序是固定位置,找元素。
前面介紹插入排序是固定元素,找位置。兩種排序的思想是不太一樣的。

實現技巧:

選擇排序註意點(假設第一層循環變量為:i;第二層循環變量為:j):
1,[0,i-1]是已經排序好的元素。,
2,定義一個變量,用來記錄本次循環下找到的最小元素的下標。
3,第二層循環是從[i,length -1]中找到最小元素的下標,用來與i元素交換。
‘‘‘ s = [2,31,13,1,13,13,1311,3,45] # select_sort for i in range(0, len(s) - 1): index = i for j in range(i + 1, len(s)): if s[index] > s[j]: index = j s[i], s[index] = s[index], s[i] print s

結果:

技術分享圖片

 

python之選擇排序