题解 | #其元素按照升序或降序进行排序#

输入整型数组和排序标识,对其元素按照升序或降序进行排序

https://www.nowcoder.com/practice/dd0c6b26c9e541f5b935047ff4156309

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n =Integer.parseInt(sc.nextLine());
        String s1 = sc.nextLine();
        int flag = Integer.parseInt(sc.nextLine());
        String[] sArr = s1.split(" ");
        int[] ints = new int[sArr.length];
        for(int i=0;i<sArr.length;i++){
            ints[i] =Integer.parseInt(sArr[i]);
        }
        if(flag == 0){
            //升序
            int[] ints1 = getOrderByDesc(ints);
            for(int i =0;i<ints1.length;i++){
                System.out.print(ints1[i]+" ");
            }
        }else{
            int[] ints1 = getOrderBy(ints);
            for(int i =0;i<ints1.length;i++){
                System.out.print(ints1[i]+" ");
            }
        }
    }
    //冒泡排序(降序)
    public static int[] getOrderBy(int[] ints){
        for(int i=0;i<ints.length - 1;i++){
            for(int j=0;j<ints.length - i - 1;j++){
                int temp = 0;
                if(ints[j] < ints[j+1]){
                    temp = ints[j+1];
                    ints[j+1] = ints[j];
                    ints[j] = temp;
                }
            }
        }
        return ints;
    }
    
    //冒泡排序(升序)
    public static int[] getOrderByDesc(int[] ints){
        for(int i=0;i<ints.length - 1;i++){
            for(int j=0;j<ints.length - i - 1;j++){
                int temp = 0;
                if(ints[j] > ints[j+1]){
                    temp = ints[j+1];
                    ints[j+1] = ints[j];
                    ints[j] = temp;
                }
            }
        }
        return ints;
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务