ruby实现的插入排序和冒泡排序算法

601 查看


1、插入排序

复制代码 代码如下:

seq = [3,4,9,0,2,5,9,7,1]

1.upto(seq.length-1) do |i|
  if seq[i] < seq[i-1]
    tmp = seq[i]
    j = i-1
    while(j>=0 && tmp<seq[j]) do
      seq[j+1] = seq[j]
      j=j-1
    end
    seq[j+1]=tmp
  end
end

seq.each {|num| puts num}

2、冒泡排序

复制代码 代码如下:

seq = [3,4,9,0,2,5,9,7,1,100,99,24,64,18,88,66]

0.upto(seq.length-1) do |i|
  exchange = false
   0.upto(seq.length-1-i-1) do|j|
     if seq[j]>seq[j+1]
       tmp = seq[j+1]
       seq[j+1] = seq[j]
       seq[j] = tmp
       exchange = true
     end
   end

  if !exchange
    break
  end
end

seq.each {|num| puts num}