我创建了以下代码来进行冒泡排序,代码运行良好。我的问题是为什么它工作...当调用该方法时,我假设计算机将首先评估$ x是否等于0.但是我没有为$ x指定值,所以是什么让计算机启动运行每个循环?
似乎与x是一个全局变量这一事实有关,但我不确定如何。请提出建议!
def bubble_sort(arr)
while $x != 0
$x = 0
arr.each_with_index do |i, j|
if arr[j+1] != nil && i > arr[j+1]
arr[j], arr[j+1] = arr[j+1], arr[j]
$x += 1
end
end
end
arr
end
p bubble_sort([4,3,78,2,0,5,100,34])
答案 0 :(得分:0)
我假设你只调用一次这个方法? ...
第一次调用期间全局$ x不存在,并且搜索该全局变量返回$(function() {
var pgurl = window.location.href.substr(window.location.href
.lastIndexOf("/")+1);
$("navbar ul a").each(function(){
if($(this).attr("href") == pgurl || $(this).attr("href") == '' )
$(this).addClass("active");
})
});[![menu menu bare home is active now manually][1]][1]
。
因此,第一个nil
循环将while
评估为$x==0
nil == 0
。