zoukankan      html  css  js  c++  java
  • [Algorithm] How to use Max Heap to maintain K smallest items

    Let's say we are given an array:

    [4,1,5,2,3,0,10]

    We want to get K = 3 smallest items from the array and using Max heap data structure.

    So this is how to think about it.

    1. We take first K items put it into Max Heap:

         5

      /     

    4          1

    2. Then we move forward to next element '2' in the array, we check

    • Whether 2 is smaller than current max item in heap, which is '5', if yes, then replace 5 with 2
    • Then re-arrange the heap

         4

       /            

     2         1

    3. Repeat the process for items [3,0]

         3        2

       /                       /  

     2         1              0    1

    4. When the item is '10' which is larger than current max '2', we just ingore it.

    5. In the end, we got K smallest items, we just need to print it out. (K smallest items are not ncessary in order)

  • 相关阅读:
    Http中GET和POST两种请求的区别
    JSON学习笔记
    分页
    python 函数,闭包
    LVS负载均衡中arp_ignore和arp_annonuce参数配置的含义
    return ;
    openssl 在php里
    重装drupal
    protected的意义
    和 和 notepad++
  • 原文地址:https://www.cnblogs.com/Answer1215/p/10480327.html
Copyright © 2011-2022 走看看