排序方式有8种,分别是:冒泡排序,选择排序,插入排序,快速排序,希尔排序,归并排序,基数排序,堆排序。
这里只写出了冒泡排序,其他排序在之后数据结构的课程笔记中具体写出。
冒泡排序
具体案例:
/** 冒泡排序 由简单到复杂,找规律 {20,30,25,65,14} 思路: 第一轮排序,依次比较 1.{20,30,25,65,14} 20与30比较不用交换 2.{20,25,30,65,14} 30与25比较 交换 3.{20,25,30,65,14} 30与65比较不用交换 4.{20,25,30,14,65} 65与14比较 交换 第二轮排序,依次比较 1.{20,25,30,14,65} 20与25比较不用交换 2.{20,25,30,14,65} 25与30比较不用交换 3.{20,25,14,30,65} 30与14比较 交换 第三轮排序,依次比较 1.{20,25,14,30,65} 20与25比较不用交换 2.{20,14,25,30,65} 25与14比较 交换 第四轮排序,依次比较 1.{14,20,25,30,65} 20与14比较 交换 由此可见 一共有5个元素的数组我们经过了4轮比较。且每轮比较次数分别是 4 3 2 1 即 (5 - 轮次) */ import java.util.Scanner; public class BubbleSort { public static void main(String[] args){ int[] arr = new int[]{20,30,25,65,14}; int temp = 0; //最终代码 for(int j = 0;j < arr.length - 1;j++){ //比较轮次 for(int i = 0;i < ((arr.length - 1)- j);i++){ if(arr[i] > arr[i+1]){ temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } } System.out.println("第"+ (j+1) +"轮排序:"); for(int i = 0 ; i <arr.length;i++){ System.out.print(arr[i]+" "); } System.out.println(); } System.out.println("==============================================="); //第一轮比较 for(int i = 0 ; i < (5-1) ;i++){ //减一是因为5个数实际只需要比较4次 if(arr[i] > arr[i+1]){ temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } } System.out.println("第一轮排序:"); for(int i = 0 ; i <arr.length;i++){ System.out.print(arr[i]+" "); } System.out.println(); //第二轮比较 for(int i = 0 ; i < (4-1) ;i++){ //减一是因为5个数实际只需要比较4次 if(arr[i] > arr[i+1]){ temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } } System.out.println("第二轮排序:"); for(int i = 0 ; i <arr.length;i++){ System.out.print(arr[i]+" "); } System.out.println(); //第三轮比较 for(int i = 0 ; i < (3-1) ;i++){ //减一是因为5个数实际只需要比较4次 if(arr[i] > arr[i+1]){ temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } } System.out.println("第三轮排序:"); for(int i = 0 ; i <arr.length;i++){ System.out.print(arr[i]+" "); } System.out.println(); //第四轮比较 for(int i = 0 ; i < (2-1) ;i++){ //减一是因为5个数实际只需要比较4次 if(arr[i] > arr[i+1]){ temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } } System.out.println("第四轮排序:"); for(int i = 0 ; i <arr.length;i++){ System.out.print(arr[i]+" "); } System.out.println(); } }
![](https://img2020.cnblogs.com/blog/2181143/202011/2181143-20201121231034638-843767463.png)