剑指offer
文章平均质量分 64
Creep_guy
····一只小码农
展开
-
快速排序
最近在看剑指offer,有几道题惹我无限遐想,快排真是个神奇的算法。特来总结以下几道题。先来回忆快排排序,相信很多人已经很熟悉了。 快速排序的基本思想是:选定一个初始值对数组进行划分,左边数组都小于初始值右边都答大于初始值。然后继续对左右子数组继续划分,已达到整体对数组排序的目的。 我们先来实现对数组 的划分:目的很简单选定一个中间值,左右划分,,返回枢纽值下标。代码如下。int partit原创 2015-11-05 16:57:10 · 217 阅读 · 0 评论 -
刷题之路之二维数组查找数据
给定一个二维数组,每行递增,每列递增。4 5 6 8 7 8 9 10 9 12 15 1712 13 16 20如 二维数组,随机给出的一个二维数组。代码如下 boolen search(int *data,int rows,int columns,int num原创 2015-11-20 19:31:49 · 227 阅读 · 0 评论 -
剑指offer 之 partition函数运用
1 找出数组最小的k个数## 标题 ##@1;最简单也最直观的解法。对数组排序,顺序输出前k个数字。最快的是利用快排,时间复杂度为o(nlogn);@2:利用快排中的partition ,该函数的思想为划分数组为两部分 左半部小于枢纽值,右半边大于枢纽值。利用该算法,可以得出本题的算法我们可以把最终的low值定位在 第k-1的位置。代码如下。void mypartition(data[],int l原创 2015-11-20 18:52:02 · 750 阅读 · 0 评论