美文网首页程序员
day16_System类中的arraycopy方法——冒泡排序

day16_System类中的arraycopy方法——冒泡排序

作者: 雷阳洪 | 来源:发表于2019-03-04 18:25 被阅读21次
image.png
//拷贝数组元素的操作
class ArrayCopeDemo 
{
    public static void main(String[] args) 
    {
        int[] src = new int[]{1,2,3,4,5,6,7,8,9,10};//源数组
        int[] dest = new int[10];//目标数组
        //需求:从src数组中拷贝3,4,5,6元素到dest数组中
        printArray(dest);//[0,0,0,0,0,0,0,0,0,0]
        System.arraycopy(src,2,dest,5,4);//调用System类中自带的copy方法
        printArray(dest);//[0,0,0,0,0,3,4,5,6,0]
    }
    static void printArray(int[] arr)
    {
        //思路:先打印数组"[]",再获取arr数组里面的元素,然后再做if判断,判断如果当前i的值不是最后一个索引,则拼接
        if (arr == null)
        {
            System.out.println("null");
            return;
        }
        String ret = "[";
        for (int i = 0;i < arr.length ;i ++ )
        {
            ret = ret + arr[i];
            //如果当前i不是最后一个索引,则拼接", "
            if (i != arr.length - 1)
            {
                ret = ret + ", ";
            }
        }
        ret = ret  +  "]";

        System.out.println(ret);
    }
}

冒泡排序

image.png
image.png
//数组的排序操作(冒泡排序)
class ArraySortDemo 
{
    public static void main(String[] args) 
    {
        int[] arr = new int[]{2,9,6,7,4,1};
        ArraySortDemo.printArray(arr);//[2,9,6,7,4,1]
        ArraySortDemo.bubbleSort(arr);//排序
        ArraySortDemo.printArray(arr);//[1,2,4,6,7,9]
    }
    //冒泡排序
    static void bubbleSort(int[] arr)
    {
        /*
        //第一轮
        for (int i = 1;i <= arr.length - 1 ;i ++ )
        {
            if (arr[i - 1] > arr[i])
            {
                swap(arr,i-1,i);
            }
        }
        //第二轮
        for (int i = 1;i <= arr.length - 2 ;i ++ )
        {
            if (arr[i - 1] > arr[i])
            {
                swap(arr,i-1,i);
            }
        }
        //第三轮
        for (int i = 1;i <= arr.length - 3 ;i ++ )
        {
            if (arr[i - 1] > arr[i])
            {
                swap(arr,i-1,i);
            }
        }
        */
        //代码加强
        for (int j = 1;j <= arr.length - 1 ;j ++ )
        {
                for (int i = 1;i <= arr.length - j ;i ++ )
            {
                if (arr[i - 1] > arr[i])
                {
                    swap(arr,i-1,i);
                }
            }
        }
    }
    static void swap(int[] arr,int index1,int index2)
    {
        int temp = arr[index1];
        arr[index1] = arr[index2];
        arr[index2] = temp;
    }
        static void printArray(int[] arr)
    {
        //思路:先打印数组"[]",再获取arr数组里面的元素,然后再做if判断,判断如果当前i的值不是最后一个索引,则拼接
        if (arr == null)
        {
            System.out.println("null");
            return;
        }
        String ret = "[";
        for (int i = 0;i < arr.length ;i ++ )
        {
            ret = ret + arr[i];
            //如果当前i不是最后一个索引,则拼接", "
            if (i != arr.length - 1)
            {
                ret = ret + ", ";
            }
        }
        ret = ret  +  "]";

        System.out.println(ret);
    }
}

相关文章

网友评论

    本文标题:day16_System类中的arraycopy方法——冒泡排序

    本文链接:https://www.haomeiwen.com/subject/nlhiuqtx.html