剑指offer 之 partition函数运用

原创 2015年11月20日 18:52:02

1 找出数组最小的k个数## 标题 ##

@1;最简单也最直观的解法。对数组排序,顺序输出前k个数字。最快的是利用快排,时间复杂度为o(nlogn);

@2:利用快排中的partition ,该函数的思想为划分数组为两部分 左半部小于枢纽值,右半边大于枢纽值。利用该算法,可以得出本题的算法我们可以把最终的low值定位在 第k-1的位置。代码如下。

void mypartition(data[],int low,int high,int k)
{       
        int pivot=0;
       while(pivot!=k-1)
       {
           pivot=partition(data,low,high);
           if(pivot<k-1)
           pivot=partition(data,pivot+1,high);
           else
           pivot=partition(data,low,pivot-1);
       }

      for(int i=0;i<k;i++)
      printf("%d",data[i]);
      putchar("\n");  
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

剑指Offer(第二版)面试题30:包含min函数的栈

剑指Offer(第二版)面试题30:包含min函数的栈

剑指offer——面试题21:包含min函数的栈

template void StackWithMin::push(const T& value) { // 把新元素添加到辅助栈 m_data.push(value); /...

剑指offer:面试题1 赋值运算符函数

本题考点: 考察对c++的基础语法理解,如运算符函数、常量引用等。

剑指offer-4-面试21:包含min函数的栈

题目 分析 测试用例代码 本题考点 题目 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及 pop的时间复杂度都是O(1) 分析 看...

剑指offer-包含min函数的栈

题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数 分析(分析转载自此网页): google的一道面试题。我看到这道题目时,第一反应就是每次push一个新元素时,将栈...

剑指offer21-包含min函数的栈

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数 。在该栈

C/C++面试题(3)——剑指offer1(赋值运算符函数)

今天又复习了C++面试题,这道题的目的是:给出一个类的声明,然后写出这个类的构造函数、析构函数、拷贝构造函数和运算符重载函数。 题目 //题目:如下为类型CMyString的声明,请为该类型添加赋值...

剑指offer-面试题21-包含min函数的栈

题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小素的min 函数。在该栈中,调用min、push 及pop的时间复杂度都是0(1)。题目分析:借助一个辅助栈,当向栈中压入元素时,跟辅助...

剑指Offer系列---(23)包含min函数的栈

1.题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及pop的时间复杂度都是O(1)。 2.分析: 实现方法:把每次的最小元素(之前的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)