之前内容复习:
1、 引用是用来找到实际对象的线索
2、 数组对象一定在堆区;字符串也是个对象在堆区;属性在对象的内部,同对象一起在堆区内
3、介绍几个简单的包的导入和方法的理解与使用
(1)import java.util.Arrays
Arrays.fill(int[ ],int v);
Arrays.copyOf(int[] a,int newLength);
Arrays.copyOfRange(int[] a,int from,int to);//a[from,to)
Arrays.toString(a);
Arrays.binarySearch(int[] int v);
(2)import java.lang.System;
System.arraycopy(源数组引用,源下标,目标数组引用,目标下标,长度);
==============================================================
1、 冒泡法排序
for(int i=0;i<a.length;i++){
//无序列[0,a.length-i)
//有序列[a.length-i,a.length)
//经过一次冒泡
//无序[0,a.length-i-1)
//有序[a.length-i-1,a.length)
}//注意各个下标所代表的含义
左旋数组题:
int[] a={1,2,3,4,5}左旋三位之后变成====>>>{4,5,1,2,3}
public void rorate(int[] num,int k){
int[] rightPart=Arrays.copyOfRange(num,num.length-k,num.length)
System.arraycopy(num,0,num,num.length,k);
System.arraycopy(rightPart,0,num,0,k);
}
//将一个数组的偶数放在前边,奇数放在后边
public static int[] sortArrayByParity(in[] num){
//有两种做法
}
第一种:
(1)在数组的前后各定义一个下标变量
(2)前后同时开始遍历,若后边的下标在遍历时遇见奇数时,下标加加,在遍历前边的下标时若遇到的是偶数,前边的下标加加
(3)若前边在遍历时遇见奇数,后边在遍历时遇见偶数,则两个下标对应的数组值交换
(4)以此类推,遇到终止条件时则停止。循环进行的条件(begin<end)
第二种:
(1)在数组的0位置定义两个下标值a,b
(2)让a下标依次往后遍历,若遇见的数是偶数则加加,若遇见的数是奇数则与b下标对应的数组值交换
(3)直到a遍历完整个数组为止
这种思想:
b下标之前的数都是偶数
a~b下标之间的数是奇数
a下标之后的数是未判断的数