1

挿入ソートのコードを書きましたが、これはうまく機能します (はい、宿題です)。しかし、そのコードの前に、動作しない別のコードを書きましたが、その理由はわかりません。理解を助けてください...

これは私の古いコードです:

def insertion_sort(lst):
    if len(lst)==1:
        lst=lst
    else:
        for i in lst[1:]:
            if i==min(lst[0:lst.index(i)]):
                 lst.remove(i)
                 lst.insert(0, i)
    return lst

新しい挿入ソートは必要ありません。すでに作成しています。この特定のコードが機能しなかった理由の説明が必要です。

4

1 に答える 1

1

問題は、iが最小でなくても、lst[0:lst.index(i)]下に移動する必要がある場合があることです。したがって、たとえば が の場合、最小値が であっても、lst[0:lst.index(i)]挿入ソートを機能させるには、1 つ下に移動する必要があります。[0, 1, 2, 4, 3]03

于 2012-12-04T17:25:33.460 に答える