每次我学习一种新语言时,我都会尝试在其中建立气泡式排序。我这样做是因为它使用了大部分的通用迭代,以便以后可以参考。
现在,以我在(C,Python,VB)中尝试过的所有其他语言,(最多)这是一个20分钟的任务……(在C栏,我遇到了内存分配问题)。
但是在Ruby中……我无法使它正常工作。我遵循了我一直使用的完全相同的公式。事不宜迟:
#!/usr/bin/ruby
unsorted = []
swapFlag = 0
count = 1 # 1 == TRUE, 0 == FALSE
temp = 0
# Fills array with random numbers
while count != 20
count += 1
unsorted[count]=rand(100)
end
# Prints unsorted numbers, for comparison
while count != 0
print "#{count} #{unsorted[count]} \n"
count -= 1
end
print "\n"
limit = unsorted.length
# This section is the problem.
# I'm assuming it's got something to do with the logic of the loop
while swapFlag == 1
swapFlag = 0
for count in 1..limit
if unsorted[count] > unsorted[count + 1]
temp = unsorted[count + 1]
unsorted[count + 1] = unsorted[count]
unsorted[count] = temp
swapFlag = 1
end
end
end
count = 0
while count != 20
count += 1
print "#{count} - #{unsorted[count]} \n"
end
我尝试使用不同的if循环语法,使用.each do方法...无济于事。
答案 0 :(得分:1)
您似乎甚至都没有进入while
循环:
swapFlag = 0
...
while swapFlag == 1
此外,此代码在修复时可能会起作用,但它不像Ruby。这种学习方法可能适合理解语法和一些基本的迭代,但是这种语言提供了更多的功能,可读性和强大的方法来实现这一目的。
答案 1 :(得分:0)
name_avg_vector.tolist()