快速排序+快速选择(常用于筛选前N个最大or最小)-java实现

本文介绍了Java实现快速排序和快速选择的方法,适用于筛选前N个最大或最小元素。作者强调了复习基础知识的重要性,并提供了代码示例供读者实践。

快速排序+快速选择(常用于筛选前N个最大or最小)-java实现

最近这一两天,终于有空复习以前学习的东西了。前面忙着学SpringCloud和Netty感觉花费了太多时间,做项目也是。后来实习的面试准备就等于没准备,全靠着以前学习的记忆面试。果不其然,效果不是很好。
这里建议大家做项目量力而行,最好还是多学习和复习所学的知识。毕竟别人往往一两句话就认定了你的项目的水准和花费的努力。而复习所学的知识,反而才更适合现在的环境。

吐槽完毕,最近终于有时间做题了,重新复习了下快排。(毕竟用了很多次,所以写一写,当作复习了)

下面是java版本的快速排序快速选择

public Test{
   
   
    @Test
    public void testSort() {
   
   

        // 选择前11小的数字
        int[] arr1 = {
   
   10, 10, 10, 9, 9, 9, 8, 8, 8, 7, 7, 7, 6, 6, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1};
        quickTopN(arr1, true, 0, arr1.length - 1, 10);
        System.out.println("选择前11小的数字");
        for (int item : arr1) {
   
   
            System.out.printf("%d ", item);
        }
        System.out.println();


        // 选择前11大的数字
        int[] arr2 = {
   
   1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值