- public class Sort {
- public static void main(String[] args) {
- bubbleSort();
- System.out.println("--------------------");
- selectSort();
-
- }
- //冒泡排序
- public static void bubbleSort(){
- int[] arr = {49,56,12,87,30,25,14}; //定义一个未排序的数组
- System.out.print("进行未排序前的遍历:");
- printArray(arr); //遍历数组
- System.out.println();
- for(int i = 0; i < arr.length; i++){
- for(int j = 0; j < arr.length - 1 - i; j++){//没排序完一次,最大的就在最后面,所以不需要再比较,每次就少比较i次
- if(arr[j] > arr[j+1]){ //如果前面一个元素比后面一个元素大,就交换位置
- int temp = arr[j];
- arr[j] = arr[j+1];
- arr[j+1] = temp;
- }
- }
- System.out.print("第"+(i+1)+"次的结果为:");
- printArray(arr); //遍历每一次排序的结果
- System.out.println();
- }
-
- }
- //选择排序
- public static void selectSort(){
- int[] arr = {49,56,12,87,30,25,14};
- System.out.print("进行未排序前的遍历:");
- printArray(arr); //遍历数组
- System.out.println();
- for(int i = 0; i < arr.length; i++){
- for(int j = i+1; j < arr.length; j++){
- if(arr[i] > arr[j]){
- int temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
- }
- }
- System.out.print("第"+(i+1)+"次的结果为:");
- printArray(arr); //遍历每一次排序的结果
- System.out.println();
- }
- }
- //打印数组
- public static void printArray(int[] arr){
- System.out.print("["+arr[0]+",");
- for(int i = 1; i < arr.length; i++){
- if( i != arr.length - 1){
- System.out.print(arr[i]+",");
- }else{
- System.out.print(arr[i]+"]");
- }
- }
- }
- }
复制代码 |