gpt4 book ai didi

arrays - 需要帮助理解 Ruby 冒泡排序解决方案中的语法/逻辑

转载 作者:数据小太阳 更新时间:2023-10-29 07:52:17 25 4
gpt4 key购买 nike

我需要帮助来理解此编程解决方案中的一些语法和逻辑。

def bubble_sort(arr)
sorted = false
until sorted
sorted = true
(arr.count - 1).times do |i|
if arr[i] > arr[i + 1]
arr[i], arr[i + 1] = arr[i + 1], arr[i]
sorted = false
end
end
end

arr
end

具体来说,我在理解带有 until 循环以及 sorted = truesorted = false 的部分时遇到了一些困难。我在这里阅读了一些内容,我想我知道如果仍然需要对数组进行更改,sorted 将设置为 false 并且循环继续。但如果有人能再简单地向我解释一次,我将不胜感激。

看起来时间循环只对每个数组元素减一执行一次,然后交换位置。 until 循环如何发挥作用?

最佳答案

.times 循环遍历数组,将每个元素与其相邻元素进行比较,如果它们的顺序错误则交换它们。

外层的 until sorted 循环重复这个过程,直到没有任何变化为止。此时数组已排序。

sorted 变量记录我们在最后一次遍历数组时是否交换了任何元素。如果我们这样做了,数组就改变了,我们还没有完成。另一方面,如果没有元素被交换,sorted = false 不会被执行,sorted 保持 true,我们可以退出外层循环.

关于arrays - 需要帮助理解 Ruby 冒泡排序解决方案中的语法/逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31763527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com