LoginSignup
kiri___
@kiri___

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

バブルソートの出力が正しくなされないので、手直しして頂きたい

解決したいこと

バブルソートでトレース結果も含めて、出力するプログラムを作りましたが、エラーは出ないのですが、トレース結果が正しく出力されません。正しく出力されるように手直しして頂きたいです。

入力
5
4 1 3 5 2

正しい出力結果
1 4 2 3 5
1 2 4 3 5
1 2 3 4 5
1 2 3 4 5

私のコードでの間違った出力結果
1 3 4 2 5
1 3 2 4 5
1 2 3 4 5
1 2 3 4 5
(入力、出力を書くのを忘れていました。すみません。)

発生している問題・エラー

エラーメッセージはありません。

該当するソースコード

def BUbblesort(A,N):
    tmp = None
    for i in range(N, 1, -1):
        for j in range(i - 1):
            if A[j] > A[j+1]:
               tmp = A[j]
               A[j] = A[j+1]
               A[j+1] = tmp
        print(*A)
        
N = int(input())
A = [int(x) for x in input().split()]

BUbblesort(A,N)

自分で試したこと

for文の範囲を変えてみましたが、出力結果は正しく出ませんでした。

0

1Answer

手直しでなくて申し訳ありません。

トレース結果が正しく出力されません。正しく出力されるように・・・・

質問者殿は、どのような値を入力して、どのようなトレース結果になったのでしょうか?
入力値と正しくないトレース結果、及び 正しいトレース結果の提示を願います。

0

Comments

  1. 横から失礼します。

    出力結果は正しく出ませんでした

    というのが「発生している問題」なのだから、
    「発生している問題・エラー」のセクションが「入力した内容」「出力された結果」を書くべき場所になります。

  2. 提示 ありがとうございます。
    あら? クローズされてますね。
    一応修正箇所 書いておきますね。

    -        for j in range(i - 1):
    +        for j in range(N-i, N-1, 1 ):
    
  3. @kiri___

    Questioner

    ご回答ありがとうございます。
    自分で見つけて直すことが出来たので、クローズしました。

Your answer might help someone💌