`

将两数组合并后排序

阅读更多

package com.wuxifu.bishi;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.TreeSet;

public class hebing
{
   public static void main(String[] args)
{
       int[] a=new int[]{110,254,11};
       int[] b=new int[]{9,99,66,999};
       ArrayList<Integer> c = new ArrayList<Integer>();
        TreeSet<Integer> d = new  TreeSet<Integer>();
    for (int i : a)
    {
        c.add(i);
        d.add(i);
    }
    for (int i : b)
    {
        c.add(i);
        d.add(i);
    }
    for (Integer integer : c)
    {
        //collection也可以这样遍历
    }
    System.out.println();
    //排序,利用工具类进行排序
    Collections.sort(c);
    System.out.println(c);
    //如果长度是奇数,中间 数的索引就是c.size()/2   7/2=3就是第四个数 
    System.out.println(c.get(c.size()/2));

//利用treeset的默认从小到大排序的机制进行排序
    System.out.println(d);

//自己实现排序,通过方法
    int[] mySort = mySort(a,b);
   for (int i : mySort)
{
    System.out.print(i+"\t");
}
}

    private static int[] mySort(int[] a, int[] b)
    {
        int[] d =new int[a.length+b.length];
        //先将数组a放入数组d中
       for (int i = 0; i < a.length; i++)
    {
        d[i]=a[i];
    }
       //再将数字b放入d数组中,a.length-1+i 为什么这样呢????
       for (int i = 0; i < b.length; i++)
    {
        d[a.length-1+i]=b[i];
    }
       //插入排序,要插入的数跟它前面已排好顺序的数进行比较,不跟后面的数进行比较

      //属于插入排序
        for (int i = 1; i <d.length; i++)
        {
            int  insertNumber=b[i];
            for (int j =i-1; j>=0; j--)//要跟已排好顺序数的最后一位排起,依次向前排

           //for (int j =0; j<=i-1; j++)   这样比就大错特错,要先跟已排好顺序数的最后一位进行比较,这样才不会乱
            {
                if(d[j]>insertNumber)
                {
                    d[j+1]=d[j];
                    d[j]=insertNumber;
                }
            }
        }
   return d;
    }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics