Java数组的复制、扩容、排序

数组复制》

int[] ary1 = {3, 4, 5};

1)使用for循环:

int[] ary2 = new int[ary1.length];	// {0, 0, 0}

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

    ary2[i] = ary1[i];

}

2)使用System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length):

// 该方法底层用C语言编写,所以执行效率比较高

int[] ary3 = new int[arr1.length];

System.arraycopy(ary1, 0, ary3, 0, ary1.length);

3)使用Arrays.copyOf():

int[] ary4 = Arrays.copyOf(ary1, ary1.length);


数组扩容》

int[] ary = {3, 4, 5};

ary = Arrays.copyOf(ary, ary.length + 1);	// 向数组中追加一个元素

ary[ary.length - 1] = 6;	// 插入元素到最后


数组排序》

1)选择排序

原理说明:

   ary={8,2,3,7,1} 

   ary={1|8,3,7,2}

   ary={1,2|8,7,3}

   ary={1,2,3|8,7}

   ary={1,2,3,7|8}

代码:

i= 0 ~ < ary.length - 1

j=i+1 ~ <ary.length

i 代表第一个数据的位置

j 代码后部每一个数据的位置

for(int i = 0; i < ary.length - 1; i++) {

    for(int j = i+1; j < ary.length; j++) {

        if(ary[i] > ary[j]) {

            int temp = ary[i];

            ary[i] = ary[j];

            ary[j] = temp;

        }

    }

}

2)冒泡排序

原理说明:

   ary={8,2,3,7,1}

   ary={2,8,3,7,1}

   ary={2,3,8,7,1}

   ary={2,3,7,8,1}

   ary={2,3,7,1|8}

   ary={2,3,7,1|8}

   ary={2,3,7,1|8}

   ary={2,3,1|7,8}

   ary={2,3,1|7,8}

   ary={2,1|3,7,8}

   ary={1,2,3,7,8}

代码:

i = 0~ < ary.length-1

j = 0~ < ary.length - i -1

i代表次数

j代表比较位置

for(int i = 0; i < ary.length - 1; i++) {

    for(int j = 0; j < ary.length - i - 1; j++) {

        if(ary[j] > ary[j+1]) {

            int temp = ary[j];

            ary[j] = ary[j+1];

            ary[j+1] = temp;

        }

    }

}

3)插入排序

原理说明:

  {8|2,3,7,1}

  {2,8|3,7,1}

  {2,3,8|7,1}

  {2,3,8|8,1}

  {2,3,7,8|8}

  {2,3,7,7|8}

  {2,3,3,7|8}

  {2,2,3,7|8}

  {1,2,3,7|8}

代码:

i= 1 ~ <ary.length, i++

temp = [i];

j= i-1 ~ >=0, j--

i 代表后组待插入元素 位置

temp 代表取出的待插入元素

j 代表前组每个元素的位置 

for(i = 1; i < ary.length; i++) {

    temp = ary[i];

    for(j = i - 1; j >= 0 && temp < ary[j]; j--)  {

        ary[j+1] = ary[j];

    }

    ary[j+1] = temp;

}

4)Java API排序方法

Arrays.sort(ary);	// Java API提供的排序方法,效率更高


你可能感兴趣的:(Java数组的复制、扩容、排序)