回答編集履歴

1

説明追加

2022/11/26 09:48

投稿

actorbug
actorbug

スコア2224

test CHANGED
@@ -1,3 +1,3 @@
1
1
  サイトのコードにある`if (array[large] <= array[parent]) { break;}`に相当する処理が行われていないのが原因です。
2
2
 
3
- `array[left] > array[parent]`がfalseの場合、つまり`array[left] <= array[parent]`の場合は`break;`で抜けなければならないのに、`// elseの場合は何もしない`とコメントにあるように抜けずにそのままループを続けるので、同じ処理を永遠に続けることになります。
3
+ `array[left] > array[parent]`がfalseの場合、つまり`array[left] <= array[parent]`の場合は`break;`で抜けなければならないのに、`// elseの場合は何もしない`とコメントにあるように抜けずにそのままループを続けるので、`parent`が更新されないままループの先頭に戻り、同じ処理を永遠に続けることになります。