首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    获取数组中最小的k个数字_29

    www.jianshu.com/writer#/notebooks/40413732/notes/55370532 我们这里和普通堆排序和堆数据修改有一点区别,那就是这里我们需要先实现一个小根堆,然后每一次拿第一个数据然后把这个数据删掉...,但是我们这里存在一个问题,数组不太好删数据,删除的话要进行一个所有数据的前移,因此, 我这里取了个巧,我把第一个数字和最后一个数字交换,然后我当这个数组的长度减了1,当最后一个数字不存在,然后会进行一个从顶到下的重建...,同理第二大的数字出来后与倒数第二个交换,当倒数第二个数就不存在了,以此类推。。。...public int rightChild(int parentIndex) { return 2 * parentIndex + 2; } 同理这里也把拿最大的k个数实现了

    40610
    领券