2019-11-18——ruby实现简单排序

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

你可能感兴趣的:(2019-11-18——ruby实现简单排序)