Java学习第四天2019_7_19 数组的强化

之前内容复习:

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下标之后的数是未判断的数

发布了98 篇原创文章 · 获赞 5 · 访问量 6450

猜你喜欢

转载自blog.csdn.net/weixin_43580746/article/details/96601725