输出List从大到小顺序排列后集合

在一个List集合中生成20个随机整数(100以内)

  • 然后按照从小到大的顺序排列,排好后再将第6个-第15个元素
  • 按照从大到小顺序排列,并最终输出集合

在 Python 中可以使用 random 库生成随机整数,再使用 sort 排序。
例如:
import random

#生成随机整数的列表
random_list = [random.randint(0, 100) for _ in range(20)]

#从小到大排序
random_list.sort()

#翻转第 6 个到第 15 个元素
random_list[5:15] = reversed(random_list[5:15])

#输出最终列表
print(random_list)

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class RandomNumber {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        Random random = new Random();
        for (int i = 0; i < 20; i++) {
            list.add(random.nextInt(100));
        }
        System.out.println("初始集合:" + list);
        Collections.sort(list);
        System.out.println("从小到大排序:" + list);
        List<Integer> subList = list.subList(5, 15);
        Collections.sort(subList, Collections.reverseOrder());
        System.out.println("从大到小排序:" + subList);
        System.out.println("最终集合:" + list);
    }
}

代码


import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class RandomNumber {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        Random random = new Random();
        for (int i = 0; i < 20; i++) {
            list.add(random.nextInt(100));
        }
        System.out.println("初始集合:" + list);
        // 先对集合从小到大
        bubbleSort(list, 0, list.size() - 1, true);
        // 然后翻转 第6到第14
        bubbleSort(list, 5, 14, false);
        System.out.println("最终集合:" + list);
    }

    public static void bubbleSort(List<Integer> list, int startIndex, int endIndex, boolean orderAsc) {
        int temp = 0;

        if (orderAsc) {
            for (int i = startIndex; i < endIndex; i++) {
                for (int j = startIndex; j < endIndex + startIndex - i; j++) {
                    if (list.get(j) > list.get(j + 1)) {
                        temp = list.get(j);
                        list.set(j, list.get(j + 1));
                        list.set(j + 1, temp);
                    }
                }
            }
        } else {
            for (int i = startIndex; i < endIndex; i++) {
                for (int j = startIndex; j < endIndex + startIndex - i; j++) {
                    if (list.get(j) < list.get(j + 1)) {
                        temp = list.get(j);
                        list.set(j, list.get(j + 1));
                        list.set(j + 1, temp);
                    }
                }
            }
        }

    }

}

运行结果

初始集合:[73, 45, 55, 75, 17, 51, 18, 96, 0, 77, 19, 10, 36, 77, 40, 49, 42, 60, 21, 81]
最终集合:[0, 10, 17, 18, 19, 73, 60, 55, 51, 49, 45, 42, 40, 36, 21, 75, 77, 77, 81, 96]