2.1冒泡排序复习

2.1冒泡排序复习
时间复杂度o(n^2)

冒泡排序习题.png

思路:0~N-1 个数
1.第一个数和第二个数比较,哪个数大,放到后面,第二个数和第三个数比较哪个大哪个放在后面,一轮下来最大的数放在的N-1的位置
2.把范围缩小到0~N-2,依次比较最大的数放在了N-2的位置
......
3.直至范围缩小到一个数时,就变得有序了

package chenzp;

import java.util.Scanner;

public class barrier2 {
    public static void main(String[] args){         
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int a[]=new int[n];
        for (int i = 0; i < n; i++) {
            a[i]=sc.nextInt();
        }
       

        for(int i=n;i>0;i--){
            for(int j=1;ja[j]){
                    temp=a[j];
                    a[j]=a[j-1];
                    a[j-1]=temp;
                }
            }
        }
            
        for (int i : a) {
            System.out.println(i);
        }                   
    }   
}

函数版
import java.util.Scanner;

public class barrier2 {
    
    public static int[] barrier2(int[] A, int n) {
        // write code here  
        for(int i=n;i>0;i--){
            for(int j=1;jA[j]){
                    temp=A[j];
                    A[j]=A[j-1];
                    A[j-1]=temp;
                }
            }
        }
        return A;
    }       
    
    public static void main(String[] args){         
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int a[]=new int[n];
        for (int i = 0; i < n; i++) {
            a[i]=sc.nextInt();
        }
       
        barrier2.barrier2(a,n);
        
        for (int i : a) {
            System.out.println(i);
        }                   
    }   
}

你可能感兴趣的:(2.1冒泡排序复习)