gem algorithms010 读然后学着写

gem algorithms010 读然后学着写
《数据结构》书上有2-路插入排序,书上只用一个数组,我用两个临时数据,把这个排序算法弄出来了。程序如下:
def insert(arr,val)
  r0=val
  k=0
  (arr.size-1).downto(-1) do |i|
    if i>=0 and arr[i] >= r0 
      arr[i+1]=arr[i]
    else
      k=i
      break
    end
  end
  arr[k+1]=r0
end
def sort(arr)
  xiao=[]
  da=[]
  r0=arr[0]
  (1..arr.size-1).each do |x|
    if arr[x]       insert(xiao,arr[x])
    else
      insert(da,arr[x])
    end
  end
  return xiao + [r0] + da
end
a=[3,1,4,2]
puts a.to_s
b=sort(a)
puts b.to_s

a=[1,2,3,6]
puts a.to_s
insert(a,0)
puts a.to_s

运行结果如下:
C:\Users\16493\yang_code>ruby erlu.rb
[3, 1, 4, 2]
[1, 2, 3, 4]
[1, 2, 3, 6]
[0, 1, 2, 3, 6]
书上还有表插入排序,我弄不明白,下回再写吧。
今天写得较多了,发现有了新本子,工作效率真是提高不少了。win10还是很好用的。
 

你可能感兴趣的:(algorithms010,读后感,源码分析)