• 两个有序数组合并成一个新的有序数组


    两个有序数组合并成一个新的有序数组,不用系统的API,其实有多种方法可以实现。

    1.先把两个有序数组合并成一个新的数组,再进行排序,使其成为一个新的有序数组,此方法程序可以运行,但应该不算是最优的方法。

    a = [1,5,9,10]
    b = [2,6,7]
    c=[]
    for i in 0..a.length-1
      c<<a[i]
    end
    for i in 0..b.length-1
      c<<b[i]
    end
    for i in 0..c.length-2
      for j in 0..c.length - i -2
        if c[j]>c[j+1]
          temp = c[j]
          c[j] = c[j+1]
          c[j+1] = temp
        end
      end
    end
    p c

    2.对两个有序数组进行比较,然后依次放入一个新的数组中去,只用一次循环,就生成一个新的有序数组,不知道是不是最优方法,欢迎大家给出最优的方法:

    a = [1,5,9,10,10]
    b = [2,6,7]
    c=[]
    a1 = 0
    b1 = 0
    d = a.length+b.length-1
    for i  in 0..d
      if a[a1] != nil and b[b1] != nil
        if a[a1]<b[b1]
          c<<a[a1]    
          a1 = a1 +1     
        else
          c<<b[b1]   
          b1 = b1 + 1       
        end
      else
        if a[a1] == nil and b[b1] != nil
          c<<b[b1] 
          b1 = b1 + 1
        end
        if b[b1] == nil and a[a1] != nil
          c<<a[a1] 
          a1 = a1 + 1
        end
      end
    end
    p c

     3.加一种群里小黑写的,我个人认为有点类似于冒泡排序:

    a = [1,5,9,10,32,43,453,1324,3213,3213,3214,3215]
    b = [2,6,7,10,13,15,1314,1315,312314]
    c=[]
    n=0
    for i in 0...a.length do
         for j in n...b.length do
                  if a[i]>b[j]
                    c<<b[j]
                    n=n+1                      
                  end
         end
     c<<a[i]
    end
    p c
  • 相关阅读:
    10.21SQL注入
    10.15计网相关
    10.11php+mysql
    10.10 接在10.8随笔中
    10.9 利用微信dll反弹shell复现
    10.8php续
    9.29 接9.27PHP相关
    java泛型
    java集合之Map接口
    java集合之Collection接口
  • 原文地址:https://www.cnblogs.com/zhangfei/p/3309010.html
Copyright © 2020-2023  润新知