常見的排序面試題

public class Test2 {

    public static void main(String[] args) {
        //用遞歸的方法求階乘
        int s=sum(3);
        System.out.println("s遞歸求階乘"+s);
        //找出最大值
        int[] arr={2,5,45,23};
        int max=arr[0];
        int min=arr[0];
        for(int i=0;i<arr.length;i++){
            if(max<arr[i]){
                max=arr[i];
            }
            if(min>arr[i]){
                min=arr[i];
            }
        }
        System.out.println("max最大值"+max);
        System.out.println("min最小值"+min);

        //選擇冒泡排序
        int[] att={12,5,69,45};
        selectSort(att,5);
        for(int i=0;i<att.length;i++){
            System.out.println("冒泡排序"+att[i]);
        }
    }
    // 遞歸方法求階乘
    public static int sum(int ss){
        if(ss==1){
           return 1;
        }
        return ss+sum(ss-1);
    }
    //選擇排序
    public static void selectSort(int[] arrs, int n){
       if(n<=1){
           return;//如果只有一個元素就不用排序
       }
        for(int i=0;i<arrs.length;i++){
        // 默認爲false
            boolean flag=false;
            for(int j=0;j<arrs.length-1-i;j++){
                if(arrs[j]>arrs[j+1]){
                    int tmp=arrs[j];
                    arrs[j]=arrs[j+1];
                    arrs[j+1]=tmp;
                    flag=true;
                }
            }
            if(!flag)break;
        }
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章