首页 > 试题广场 >

排序

[编程题]排序
  • 热度指数:230688 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给出的 n 个整数组成的数组 \{a_1, a_2, \dots, a_n\},根据输入要求,按升序或降序排列后输出。

输入描述:
\hspace{15pt}第一行输入一个整数 n \left(1 \leqq n \leqq 10^3\right) 代表数组中的元素个数。
\hspace{15pt}第二行输入 n 个整数 a_1, a_2, \dots, a_n \left(0 \leqq a_i \leqq 10^5\right) 代表数组中的元素。
\hspace{15pt}第三行输入一个整数 op \left(0 \leqq op \leqq 1\right) 代表排序方式,其中,op=0 表示按升序,op=1 表示按降序。


输出描述:
\hspace{15pt}在一行上输出 n 个整数,代表排序后的数组。
示例1

输入

5
1 2 2 5 4
0

输出

1 2 2 4 5
示例2

输入

5
1 2 2 4 5
1

输出

5 4 2 2 1
import java.util.Scanner;
import java.util.Arrays;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            int a = in.nextInt();
            in.nextLine();
            int[] s= new int[a];
            for(int i=0;i<a;i++){
                s[i] = in.nextInt();
            }
            in.nextLine();
            int c =in.nextInt();
            Arrays.sort(s);
            if(c==1){
                for(int i=0;i<a/2;i++){
                    int temp=s[i];
                    s[i]=s[a-i-1];
                    s[a-i-1]=temp;
                }
            }
            for(int i=0;i<a;i++){
                System.out.print(s[i]+" ");
            }
            
        }
    }
}

发表于 2025-05-17 19:11:56 回复(0)
import java.lang.Integer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
       
         // 输入数组元素个数
        int num = in.nextInt();
       
        // 输入待排序的数组
        ArrayList<Integer> list=new ArrayList<>();
        for (int i = 0; i < num; i++){
            list.add(in.nextInt());
        } //System.out.println(list);
       
        // 输入排序选项
        int opt = in.nextInt();
       
        //根据选项进行排序
        if (opt == 0) {
           list.sort(Integer::compareTo);
           for(Integer i:list){
            System.out.print(i+" ");
           }
           
       
        }else if(opt==1) {
        descendSort(list);
         for(Integer i:list){
            System.out.print(i+" ");
           }
        }
 }

    private static void descendSort(ArrayList<Integer> list) {
        // TODO
        Collections.sort(list,new Comparator<Integer>(){
         public int compare(Integer o1, Integer o2){
                return o2-o1;
         }  
        });
    }

}
发表于 2025-04-18 16:20:03 回复(0)
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();
        int[] inputNum =  new int[num];
        for(int i = 0;i<num;i++){
            inputNum[i] = in.nextInt();
        }
        int flag = in.nextInt();
        java.util.Arrays.sort(inputNum);
        if(0 ==flag){
            for(int i = 0;i<num;i++){
             System.out.print(inputNum[i]+" ");
            }
        }else{
             for(int i = num-1;i>=0;i--){
             System.out.print(inputNum[i]+" ");
             }
        }
       
    }
}
发表于 2025-02-11 20:43:37 回复(0)
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        ArrayList<Integer> list = new ArrayList<>();
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            list.add(in.nextInt());
        }
        list.remove(0);
        if(list.get(list.size()-1)==0){
            list.remove(list.size()-1);
            Collections.sort(list);
            for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i)+" ");
        }
        }else if(list.get(list.size()-1)==1){
            list.remove(list.size()-1);
            Collections.sort(list, Collections.reverseOrder());
            for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i)+" ");
        }
        }
    }
}
发表于 2024-11-29 16:04:23 回复(0)
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        // 输入数组元素个数
        int N = in.nextInt();

        // 输入待排序的数组
        int[] array = new int[N];

        for (int i = 0; i < N; i++) {
            array[i] = in.nextInt();
        }

        // 输入排序标识
        int order = in.nextInt();

        // 根据排序标识进行排序
        if (order == 0) {
            Arrays.sort(array);
        } else if (order == 1) {
            Arrays.sort(array);
            // 反转数组实现降序
            reverseArray(array);
        }

        // 输出排好序的数组
        for (int value : array) {
            System.out.print(value + " ");
        }
        System.out.println();

        in.close();
    }

    // 反转数组
    private static void reverseArray(int[] array) {
        int start = 0;
        int end = array.length - 1;
        while (start < end) {
            int temp = array[start];
            array[start] = array[end];
            array[end] = temp;
            start++;
            end--;
        }
    }
}

发表于 2024-10-18 18:06:07 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int[] arr = new int[a];
        for(int i = 0; i < a; i++){
            arr[i] = in.nextInt();
        }
        int b = in.nextInt();
        if(b == 0){
            Arrays.sort(arr);
        }else{
            Arrays.sort(arr);
            for(int i = 0; i < a / 2; i++){
                int tmp = arr[i];
                arr[i] = arr[a - i - 1];
                arr[a - i - 1] = tmp;
            }
        }
        for(int i = 0; i < a; i++){
            System.out.print(arr[i]+ " ");
        }
    }
}
发表于 2024-08-21 19:51:06 回复(0)
import java.util.*;
import java.util.stream.Collectors;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String n = in.nextLine();
        String string = in.nextLine();
        int order = in.nextInt();
        List<String> list = Arrays.asList(string.split(" "));
        List<Integer> tempList = new ArrayList<Integer>();
        for (String item : list) {
            tempList.add(Integer.valueOf(item));
        }
        if (order == 0) {
            tempList = tempList.stream().sorted().collect(Collectors.toList());
        }
        if (order == 1) {
            tempList = tempList.stream().sorted(Comparator.reverseOrder()).collect(
                           Collectors.toList());
        }
        for (Integer item : tempList) {
            System.out.print(item + " ");
        }
    }
}
发表于 2024-07-15 19:10:55 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            int n = in.nextInt();
            List<Integer> list = new ArrayList<>();
            for (int i = 0; i < n; i++) {
                list.add(in.nextInt());
            }
            final int sort = in.nextInt();
            list.sort(Comparator.comparingInt(e->sort==0?e:-e));
            list.forEach(e -> System.out.print(e + " "));
            System.out.println();
        }
    }
}

发表于 2024-07-01 19:32:25 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        Integer[] arr = new Integer[a];
        for(int i = 0; i < a; i++){
            arr[i] = in.nextInt();
        }
        int b = in.nextInt();
        if(b == 0){
            Arrays.sort(arr);
        }else{
            Arrays.sort(arr, Collections.reverseOrder());
        }
        for(int i = 0;i < arr.length; i++){
            System.out.print(arr[i] + " ");
        }
    }
}
编辑于 2024-03-19 16:09:34 回复(0)
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        List<Integer> r = new ArrayList();
        for (int i = 0; i < n; ++ i) {
            r.add(in.nextInt());
        }
        Collections.sort(r);
        if (in.nextInt() == 1) Collections.reverse(r);
        r.forEach(item -> { System.out.printf("%d ", item);});
    }
}

编辑于 2024-03-16 16:40:55 回复(0)
import java.util.*;
import java.util.stream.Collectors;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int numSize = in.nextInt();
        List<Integer> nums = new ArrayList<>();
        for (int i = 0; i < numSize; i++) {
            nums.add(in.nextInt());
        }
        List<Integer> list = nums.stream().sorted().collect(Collectors.toList());
        int lastInt = in.nextInt();
        if (lastInt == 0) {
            for (int i = 0; i < list.size(); i++) {
                System.out.print(list.get(i) + " ");
            }
        } else {
            for (int i = list.size() - 1; i >= 0; i--) {
                System.out.print(list.get(i) + " ");
            }
        }
    }
}

编辑于 2024-02-20 11:07:24 回复(0)
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int k = in.nextInt();
        Integer[] nums = new Integer[k];
        for (int i = 0; i < k; i++) {
            nums[i] = in.nextInt();
        }
        if (in.nextInt() == 0) {
            Arrays.sort(nums);
        } else {
            Arrays.sort(nums, (a, b)->(b-a));
        }
        for (int num : nums) {
            System.out.print(num + " ");
        }
    }
}

发表于 2023-12-07 23:07:37 回复(0)
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        List<Integer> list = new ArrayList();
        for(int i = 0; i < n; i++){
            list.add(in.nextInt());
        }
        int t = in.nextInt();
        Collections.sort(list, (o1, o2)-> t == 0 ? o1 - o2: o2 - o1);
        list.forEach(k -> System.out.print(k + " "));
    }
}

发表于 2023-11-28 20:56:38 回复(0)
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s1 = sc.nextLine();

        ArrayList<Integer> list = new ArrayList<>();
        String arrstr = sc.nextLine();
        String[] split = arrstr.split(" ");
        for (int i = 0; i < split.length; i++) {
            int num = Integer.parseInt(split[i]);
            list.add(num);
        }

        String sss = sc.nextLine();
        int i = Integer.parseInt(sss);
        if (i == 0) {
            sx(list);
            bl(list);
        } else {
            jx(list);
            bl(list);
        }

    }

    //升序方法
    public static void sx(ArrayList<Integer> list) {
        list.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1 - o2;
            }
        });
    }


    //降序方法
    public static void jx(ArrayList<Integer> list) {
        list.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        });
    }


    //遍历list
    public static void bl(ArrayList<Integer> list) {
        Iterator<Integer> it = list.iterator();
        while (it.hasNext()) {
            Integer next = it.next();
            System.out.print(next + " ");
        }
    }
}

发表于 2023-11-17 16:39:03 回复(0)
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.TreeSet;
import java.util.stream.Collectors;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int totalNum = sc.nextInt();
        int[] source = new int[totalNum];
        for (int i = 0; i < totalNum; i++) {
            source[i] = sc.nextInt();
        }
        boolean orderFlag = 0 == sc.nextInt();
        TreeSet<Integer> integers = new TreeSet<>((pre, current) -> {
            int diff = pre - current;
            diff = orderFlag ? diff : -diff;
            return diff == 0 ? 1 : diff;
        });
        for (int i : source) {
            integers.add(i);
        }
        StringBuilder result = new StringBuilder();
        for (Integer integer : integers) {
            result.append(" ").append(integer);
        }
        System.out.println(result.delete(0, 1));
    }
}

发表于 2023-08-10 15:15:06 回复(1)
import java.util.Scanner;
import java.util.Arrays;
import java.util.Collections;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int a = in.nextInt();
            int[] array = new int[a];
            for (int i = 0; i < a; i++) {
                array[i] = in.nextInt();
            }
            int b = in.nextInt();
            if (b == 0) {
                Arrays.sort(array);
                for (int y = 0; y < a; y++) {
                    System.out.print(array[y] + " ");
                }
            } else {
                for (int u = 0; u < a; u++) {
                    for (int i = 0; i < a - 1; i++) {
                        if (array[i] < array[i + 1]) {
                            int num = array[i + 1];
                            array[i + 1] = array[i];
                            array[i] = num;
                        }
                    }

                }
                for (int y = 0; y < a; y++) {
                    System.out.print(array[y] + " ");
                }
            }
        }
    }
}

发表于 2023-07-10 09:38:44 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String s1 = in.nextLine();
            String str = in.nextLine();
            String s = in.nextLine();
            String[] s2 = str.split(" ");
            int arr[] = new int[s2.length];
            for (int i = 0; i < s2.length; i++) {
                arr[i] = Integer.parseInt(s2[i]);
            }
            for (int i = 0; i < arr.length; i++) {
                for (int j = 0; j < arr.length - 1 - i; j++) {
                    int temp = arr[j];
                    if (arr[j] > arr[j + 1]) {
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
            if (Integer.parseInt(s) == 0) {
                for (int i = 0; i < arr.length; i++) {
                    System.out.print(arr[i] + " ");
                }
                System.out.println();
            } else if (Integer.parseInt(s) == 1) {
                for (int i = 0; i < arr.length; i++) {
                    System.out.print(arr[arr.length - 1 - i] + " ");
                }
                System.out.println();
            }
        }

    }
}
发表于 2023-07-09 20:40:03 回复(0)