zoukankan      html  css  js  c++  java
  • 经典问题

    TopK问题

    • 全局排序,取前K个

    • 局部排序,只排序K个数,冒泡

    • ,TopK个数也不排序了,最小堆

    • 随机选择 + partition 

    分治法,每个分支“都要”递归,例如:快速排序,O(n*lg(n))

    减治法,“只要”递归一个分支,例如:二分查找O(lg(n)),随机选择O(n)

    数1问题(假如是32位的数字)

    • 位移法,32次计算;
    • n&(n-1),能消除一个1,有多少1就执行多少次,平均16次计算;
    • 查表法,1次查表,2.5G内存;所有数字和1的个数组成字典
    • 二次查表法,2次查表,32K内存;32位拆成高16位和低16位后使用查表法

    n&(n-1)

               x = 1011 0000

             x-1= 1010 1111

    x & (x-1) = 1010 0000

    于是,n&(n-1)这个操作,可以起到“消除最后一个1”的功效。.

    伪代码

    while(n){

       result++;

       n&=(n-1); // 每次消除一个1,最终为0

    }

  • 相关阅读:
    MCU开发之I2C通信
    hibernate特殊的映射
    Hibernate使用
    css设置让a标签充满整个li
    margin
    border属性
    列表
    链接样式
    相机内参外参
    tmux
  • 原文地址:https://www.cnblogs.com/wade-luffy/p/10399667.html
Copyright © 2011-2022 走看看