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}
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}
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}