面试算法题
1.求第k大的数?
借助快排思想时间复杂度可以优化到O(n);
快排就是把数组分为比key(某个值)大和比key小的两堆,然后在分治。key的下标为i;
再求第k大的数时,我们可以把大值放到左边,在求出一个下标i后,如果i < K 就计算i左边的,如果i > k 就计算i右边的,直到i==k;
2.
1.求第k大的数?
借助快排思想时间复杂度可以优化到O(n);
快排就是把数组分为比key(某个值)大和比key小的两堆,然后在分治。key的下标为i;
再求第k大的数时,我们可以把大值放到左边,在求出一个下标i后,如果i < K 就计算i左边的,如果i > k 就计算i右边的,直到i==k;
2.
相关推荐