排序方式有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();
}
}
