写点什么

Java 数组的拷贝 优化冒泡排序 二分查找,神策数据 java 面试题

  • 2021 年 11 月 10 日
  • 本文字数:1189 字

    阅读完需:约 4 分钟

一、数组的拷贝


==========================================================================


示例:数组的四种拷贝方式


1.for 循环拷贝


import java.util.Arrays;


//数组的拷贝 for 循环是浅拷贝


public class Test9 {


public static void main(String[] args) {


int[] array = {1, 2, 3, 4, 5, 6, 7};


int[] array1 = new int[array.length];


for (int i = 0; i < array1.length; i++) {


array1[i] = array[i];


}


System.out.println(Arrays.toString(array));


System.out.println(Arrays.toString(array1));


}


}



2.Arrays.copyOf()方法


import java.util.Arrays;


//数组的拷贝(Arrays.copyOf())


public class Test10 {


public static void main(String[] args) {


int[]array={1,2,3,4,5,6,7};


int[] ret= Arrays.copyOf(array,array.length);


System.out.println(Arrays.toString(array));


System.out.println(Arrays.toString(ret));


}


}



3.System.arraycopy 方法


import java.util.Arrays;


//数组的拷贝(System.arraycopy 方法)


public class Test11 {


public static void main(String[] args) {


int[]array={1,2,3,4,5,6,7};


int[] copy=new int[array.length];


System.arraycopy(array,0,copy


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


,0,array.length);


//Object src(原来的数组), int srcPos(从原来数组的这个位置开始拷贝)


// Object dest(拷贝后的数组), int destPos(拷贝的数组的开始位置),int length(拷贝的长度));


System.out.println(Arrays.toString(array));


System.out.println(Arrays.toString(copy));


}


}



4. clone 方法


import java.util.Arrays;


//数组的拷贝 clone


public class Test12 {


public static void main(String[] args) {


int[] array={1,2,3,4,5,6,7};


int []ret=array.clone();


System.out.println(Arrays.toString(ret));


System.out.println(Arrays.toString(array));


}


}



二、冒泡排序


=========================================================================


优化冒泡排序就是插入一个 boolean 变量检查是否交换,如果没有交换说明已经有序即退出。


import java.util.Arrays;


//冒泡排序


public class Test8 {


public static void main(String[] args) {


int []array={2,6,8,1,4,3,5,7};


System.out.println(Arrays.toString(array));


bubbleSort(array);


System.out.println(Arrays.toString(array));


}


public static void bubbleSort(int[] array){


int j=array[0];


for(int i=0;i<array.length-1;i++){//走的趟数 比数组长度少一个


boolean flg=false;//默认都是没有序的


for(int k=0;k<array.length-1-i;k++){// 优化(length-1-i)每次比较都会减少 第一趟要比较 4 次 第二趟 3 次,第三趟 2 次,第四趟 1 次


if(array[k]>array[k+1]){


int temp=array[k];


array[k]=array[k+1];


array[k+1]=temp;


flg=true;

评论

发布
暂无评论
Java数组的拷贝 优化冒泡排序 二分查找,神策数据java面试题