def bubble_sort(a)
something_changed = false
swap = 0
a[0...-1].each_with_index do |num, i|
if a[i] > a[i + 1]
a[i], a[i + 1] = a[i + 1], a[i]
something_changed = true
swap += 1
end
end
bubble_sort(a) if something_changed
p swap
end
arr = [50, 60, 70, 20, 30, 10]
bubble_sort(arr)
# 0
# 1
# 1
# 3
# 3
# 3
所以我一直在這一段時間,並嘗試過每一個方式。我已經設法瞭解數組如何通過冒泡排序進行排序,並且我知道對於這個特定的數組,有11個替換髮生在要排序的數組上。每次該方法遞歸運行時,我都可以打印掉所有交換次數,但是對於我來說,我無法將這些數字分組到數組中,因此我可以將它們添加並顯示11,任何洞察力都會很棒。我已經在python中完成了解決方案,它工作正常,我只想知道是否有方法將這些數字組合在一起,因爲方法是遞歸運行的。提前致謝。保持使用遞歸的冒泡排序算法中的交換計數?
尼斯修改將其作爲一個參數,無需的確是全球陣列。 – kparekh01