数组的排序
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 }