2017-05-16 2 views
0

の値を変更し続けるので、当然私はリストにそれがバブルソート関数内で変更されていますたびに追加しますnp.random.permutation(10)Pythonは、関数が、私はいくつかのソートされていないリストのアニメーションプロットすることによって、バブルソートを視覚化しようとしていたリスト

を言いますそれが完全に分類されるまで。ここでは、コード

def bubblesort(A): 
    instant = [] 

    for i in range(len(A)-1): 
    lindex=0 
    while lindex+1<len(A): 
     if A[lindex]> A[lindex+1]: 
     swap(A,lindex,lindex+1) 
     lindex+=1 
     else: 
     lindex+=1 

     instant.append(A) 
    return instant 

だ問題はinstantだけで明らかに適切ではない

[array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])] 

を返し、しかしです。何がうまくいかなかったのですか?ありがとう!

答えて

1

Aがインプレースで操作されており、bubblesortがこの配列への参照リストを返しています。今すぐAをチェックすると、それもソートされています。

if A[lindex]> A[lindex+1]: 
     swap(A,lindex,lindex+1) 

何かを変更する前にコピーを作成すること

if A[lindex]> A[lindex+1]: 
     A = A.copy() 
     swap(A,lindex,lindex+1) 

に変更、ソートの進捗状況を表示する必要があります。

関連する問題