2011-10-24 11 views
1

私の先生は、昇順で並べ替えるアルゴリズムを実行したいが、リストの中の最小の数字を使って、最初に置くことを望んでいる。私は数字のファイルを読んで、これまでのところ私は持っています:反復関数で最小限にソートするにはどうすればよいですか?

def findMin(ls, n): 
     m = 0 
     for i in range(1, n):  #n is length 
       if ls[i]<ls[m]: 
         m = i 
     return m 


    def sortlist(ls,n): 
     if n == 1: 
       return 
     m = findMin(ls,n) 
     ls.insert(0,m) 
     ls.remove(m) 
     sortlist(ls, n) 

私はいくつかのテクニックを試しましたが、それを動作させることはできません。私は長さの中で関数がそれを数えないように、最初から最小の数字を入れてからリストから差し引いてみようとしていました。私が最大でソートしていれば、n-1を置くことができますが、最小限にするにはどうすればよいですか?

答えて

1

私が推測したところでは、教師はSelection Sort algorithmを実装したいと考えています。あなたはそれを見たいかもしれません。

このアルゴリズムでは、最小の数字を現在の位置に置き換えます。最初は現在の位置はリストの先頭にあり、値を入れ替えるとシフトします。

0

これは、バブルソートである:

... 
for i in range(0, n-1): 
    for j in range(i + 1, n): 
     if ls[j] < ls[i]: 
      temp = ls[i] 
      ls[i] = ls[j] 
      ls[j] = temp 
... 
関連する問題