Hello!大家好,我是编程小白,又见面了。上篇我们刚学完数组,关于数组,有几大算法是你必须要知道的。话不多说,我们一起来看看吧!
数组的赋值与复制
首先,我们来定义两个数组
int[] array1;
int[] array2;
赋值
我们使用静态初始化来给数组1赋值
array1=int[];
我们要想array2和array1赋一样的值,我们可以
array2=array1;
如何理解:将array1保存的数组的地址值赋给了array2,使得array1和array2共同指向堆空间中的同一个数组实体。
复制
我们使用静态初始化来给数组1赋值
array1=int[];
我们让array2复制array1的值
array2 = new int[array1.length];
for(int i = 0;i < array2.length;i++){
array2[i] = array1[i];
};
如何理解:我们通过new的方式,给array2在堆空间中新开辟了数组的空间。将array1数组中的元素值一个一个的赋值到array2数组中。
赋值和复制的本质区别
赋值array1和array2的地址值相同,指向堆中同一个数组
复制array1的array2的地址值不同,它俩分别指向一个数组。
数组的反转
我们初始化一个数组
Int[] array=new int[];
for(int i = 0;i < arr.length / 2;i++){
Stringtemp =array[i];
array[i] =array[arr.length - i -1];
array[arr.length - i -1] =temp;
}
这样我们就将数组中的值翻转过来了。
冒泡排序法
数组的排序是用的最多的算法了,其中最常用的就是冒泡排序法,
冒泡排序法的实现原理:
对于一组要排序的元素列,依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面,如此继续,直到比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成
代码实现:
int[] arr =newint[]{15,72,36,-8,1,24,333,-21,102,89};
for(inti = 0;i < arr.length - 1;i++){
for(intj = 0;j < arr.length - 1 - i;j++){
if(arr[j] > arr[j + 1]){
inttemp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
这些就是今天的内容了,大家要好好消化一下,多写几遍冒泡排序,它真的很重要。
本期问题:自己独立写一遍冒泡排序法(不许照抄啊)
拜拜啦!
领取专属 10元无门槛券
私享最新 技术干货