array = [3,4,9,0,2,5,9,7,1]
插入排序 升序
1.upto(array.length - 1) do |i|
if array[i] > array[i-1]
tmp = array[i]
j = i - 1
while(j >= 0 && tmp > array[j]) do
array[j+1] = array[j]
j = j - 1
end
array[j+1] = tmp
end
end
插入排序 降序
1.upto(array.length - 1) do |i|
if array[i] < array[i-1]
tmp = array[i]
j = i - 1
while(j >= 0 && tmp < array[j]) do
array[j+1] = array[j]
j = j - 1
end
array[j+1] = tmp
end
end
冒泡排序 升序
0.upto(array.length - 1) do |i|
limit = array.length - i - 2
0.upto(limit) do |j|
if array[j] > array[j+1]
tmp = array[j+1]
array[j+1] = array[j]
array[j] = tmp
end
end
if limit == 0
break
end
end
冒泡排序 降序
0.upto(array.length - 1) do |i|
limit = array.length - i - 2
0.upto(limit) do |j|
if array[j] < array[j+1]
tmp = array[j+1]
array[j+1] = array[j]
array[j] = tmp
end
end
if limit == 0
break
end
end
网友评论