Pythonでバブルソートの問題を解いていますが、以下のように書いたところ、
全くソートされないで出力されてしまいます。どこに問題があるでしょうか...
python
1N = int(input()) 2number_list = list(map(int, input().split())) 3 4i = len(number_list) - 1 5j = len(number_list) - 1 6print(i) 7 8temp = 0 9 10while i < 1: 11 j = i 12 while j < 1: 13 if number_list[j] < number_list[j - 1]: 14 temp = number_list[j - 1] 15 number_list[j - 1] = number_list[j] 16 number_list[j] = temp 17 j -= 1 18 i -= 1 19 20print(number_list)
また、競プロではこの手のソートの問題が多いですが、Pythonで書くと
いつもこのようにループ処理の箇所がぎこちないというか、
初期化で困ります。
Cのfor文ならもっとスマートに書けるのになぁと思いながら書いています。
Pythonでこの手の問題を解く際にこう書いたほうが良いよといった方法は
ございますでしょうか?
(私の知識不足のせいでこんなぎこちなくなってしまっているのだろうなと...)
回答お願いいたします。
回答2件
あなたの回答
tips
プレビュー