直接選択法によるソート。
N番目〜末尾のリストに対して最小値を先頭に持っていくことを繰り返す。
最小値を求める関数search_min()を定義して使いたかったので
メインの関数、direct_sort()が逆に汚くなった。
#! usr/bin/env python # -*- coding: utf-8 -*- #direct_sort.py """最小値を求める関数""" def search_min(x): #リストAの最小要素を返す #A = [80,50,56,30,51,70] #x=[] #任意の配列 min = x[0] #initialize for an in x: if min > an: min = an #print "min = ",min return min def direct_sort(x): i=0 for an in x: xdash = x[i:] # N番目〜末尾までのリスト min_num = xdash.index(search_min(xdash)) + i #xdashリストの中での最小値 this_num = x.index(an) #今の要素の番号 x[this_num],x[min_num]=x[min_num],x[this_num] i+=1 return x #A=[80,50,56,30,51,70] #sample number list numbers = raw_input("input the number list divided with comma : ") A=numbers.split(",") k = 0 for a in A: A[k] = float(a) k += 1 print "direct sort = ", direct_sort(A)