数组的排序

1、数组的遍历:

  利用array.length函数直接获取数组长度,使用for循环直接输出得到数组内容。

1 public class Demo08 {
2     public static void main(String[] args) {
3         int[] array = new int[]{5,6,3,2,1,8};
4         for (int i = 0; i < array.length; i++) {
5             System.out.println(array[i]);
6         }
7     }
8 }

2、数组的反转排序

  数组内的元素前后互换位置,设置两个游标,一个从0开始自增,另一个从数组长度减一开始自减,游标所对应的元素互换位置,直到两个游标相遇

 1 public class Demo08 {
 2     public static void main(String[] args) {
 3         int[] array = new int[]{5,6,3,2,1,8};
 4         for (int min = 0,max = array.length - 1; min <= max;min++,max--) {
 5             int temp = array[max];
 6             array[max] = array[min];
 7             array[min] = temp;
 8         }
 9         for (int i = 0; i < array.length; i++) {
10             System.out.println(array[i]);
11         }
12     }
13 }

3、 数组冒泡排序

  相邻两个元素比较大小,每次当array[j] > array[j + 1]时,两个元素互换位置,一轮结束后,该数组最大值到达最后一个元素的位置,如此循环,直到循环 数组长度 - 1轮,将数组从小到大排序成功

 1 public class Demo09 {
 2     public static void main(String[] args) {
 3         int[] array = new int[]{5,6,3,2,1,8};
 4         maopao(array);
 5     }
 6     public static void maopao(int[] array) {
 7         for (int i = 0; i < array.length - 1; i++) {
 8             for (int j = 0; j < array.length - i - 1; j++) {
 9                 if (array[j] > array[j + 1]) {
10                     int temp = array[j];
11                     array[j] = array[j + 1];
12                     array[j + 1] = temp;
13                 }
14             }
15         }
16         for (int i = 0; i < array.length; i++) {
17             System.out.println(array[i]);
18         }
19     }
20 }

4、数组的比较排序

  比较排序是从0号元素开始,拿着和后面元素挨个比较大小,当遇到比该元素小的,则互换位置,结束后再拿着1号元素和后面的比较,如此循环,直到排序结束需要循环数组长度减一次

 1 public class Demo09 {
 2     public static void main(String[] args) {
 3         int[] array = new int[]{5,6,3,2,1,8};
 4         bijiao(array);
 5  public static void bijiao(int[] array){
 6             for (int i = 0; i < array.length - 1; i++) {
 7                 for (int j = i + 1; j < array.length; j++) {
 8                     if(array[i] > array[j]) {
 9                         int temp = array[i];
10                         array[i] = array[j];
11                         array[j] = temp;
12                     }
13                 }
14             }
15 
16         for (int i = 0; i < array.length; i++) {
17             System.out.println(array[i]);
18         }
19     }
20 }

4、数组的插入排序

  从数组的第一个元素开始,左边视为已排序数组,右边视为待排序数组,从左往右依次取元素,插入左侧已排序数组,对插入新元素的左侧数组重新生成有序数组

 1 public class Demo09 {
 2     public static void main(String[] args) {
 3         int[] array = new int[]{5,6,3,2,1,8};
 4         charu(array);
 5     }
 6 public static void charu(int[] array){
 7         for (int i = 1; i < array.length; i++) {
 8             for (int j = i; j > 0; j--) {
 9                 if (array[j] > array[j - 1]){
10                     int temp = array[j];
11                     array[j] = array[j - 1];
12                     array[j - 1] = temp;
13                 }
14             }
15         }
16         for (int i = 0; i < array.length; i++) {
17             System.out.print(array[i] + " ");
18         }
19   }

 

posted @ 2019-08-03 19:06  七月流星丶  阅读(170)  评论(0)    收藏  举报