Pythonを使用してこのアルゴリズムを実装するための作業。私の論理は大丈夫だと思ったが、明らかにPythonが不平を言っているわけではない。 whileループは問題を引き起こしています。私はそれが期待どおりに動作しますが、明らかにリスト全体をソートしないことを削除する場合。私の思考プロセス - >線形検索を使用して最小番号を見つける - >新しい番号をリストに加える - >現在のリストからその番号を取り除く - >同じリストをループする(最小番号を取り除いた)私たちがリスト全体を "x"回繰り返すまで。 "x"はリストの長さに等しい。私が実行していると思う問題は、forループを実行するたびにリストが更新されることはありませんか?私はエラーLine 21: ValueError: list.index(x): x not in list
を得続けます。 "x"がリストにあるとしても。私が間違ってやっていることについて、どんな考えですか?ソートアルゴリズムPython
"""
Selection sort algorithm.
"""
import random
ls = []
max_number = 10
while len(ls) < max_number:
ls.append(random.randint(1,101))
print ls
def selection_sort(items_to_sort):
smallest_number = items_to_sort[0]
current_number = 0
sorted_items = []
item_len = len(items_to_sort)
while item_len > 0:
for item in items_to_sort[:]:
if item < smallest_number:
smallest_number = item
items_to_sort.pop(items_to_sort.index(smallest_number))
sorted_items.append(smallest_number)
item_len -= 1
return sorted_items
print selection_sort(ls)
を割り当てる必要がはいuは、彼が再初期化smallst_numberない場合、彼は最後のよりも小さい小さい番号を見つけることはできません、正しいです小さい数字... – Acepcs
ファンタスティック。あなたは人の中の神です。誠にありがとうございます。 – terratunaz
嬉しいことに、この回答が役に立ったら、私は助けてくれました。 :) – ctj232