

再度失礼いたします。  
バブルソートで、１ステップ毎に配列の内容をprintで表示させながら並び替えるようにする方法について教えていただきたいです。  
私が間違えて書いたプログラムは一番下に掲載します。

例えば、([3,6,1,4])が与えられたら

[code]

    [3, 6, 1, 4]
    [3, 6, 1, 4]
    [3, 1, 6, 4]
    [3, 1, 4, 6]
    [1, 3, 4, 6]
    [1, 3, 4, 6]
    [1, 3, 4, 6]
    
[/code]

と出力したいです。 ご教示お願いいたします。

[code]

    def print_bubble_sort(s):
        print(s)
        for i in range(len(s)):
            for j in range(len(s)+1, i, +1):
                if s[j] < s[j+1]:
                    s[j], s[j+1] = s[j+1], s[j]
                    print(s)
        return s
    
[/code]


CC BY-SA 4.0
2023-01-21T15:57:21.877
93493
2023-01-29T11:17:19.273
2023-01-21T17:03:42.873
3060
56694
question
python
バブルソートで確認した後に、毎回printするようにプログラミングする方法について


希望の出力例は「未ソート部分の最大要素を部分の最後に移動し全体として末尾から順に確定していく」方法の出力と思われるので，その記述例と出力を示します。

[code]

    def print_bubble_sort(s):
        print('i j', s)
        print('-' * 20)
        for i in range(len(s) - 1):
            for j in range(len(s) - 1 - i):
                if s[j] > s[j+1]:
                    s[j], s[j+1] = s[j+1], s[j]
                print(i, j, s)
    
    print_bubble_sort([3, 6, 1, 4])
    
[/code]

[code]

    i j [3, 6, 1, 4]
    --------------------
    0 0 [3, 6, 1, 4]
    0 1 [3, 1, 6, 4]
    0 2 [3, 1, 4, 6]
    1 0 [1, 3, 4, 6]
    1 1 [1, 3, 4, 6]
    2 0 [1, 3, 4, 6]
    
[/code]


CC BY-SA 4.0
2023-01-29T10:53:50.710
93606
2023-01-29T11:17:19.273
2023-01-29T11:17:19.273
54588
54588
93493
answer