【面试题030】最小的k个数题目: 输入n个整数,找出其中最小的k个数。
例如输入4、5、1、6、2、7、3、8这8个字,则其中最小的4个数字是1、2、3、4。思路一:
可以同样的基于随机快速排序的Partition函数,来对数组做划分, 基于k来作调整,返回调用Partition函数,直到...
分类:
其他好文 时间:
2014-05-27 02:04:02
阅读次数:
287
以前写的一些老代码留着没事可以看看 1 // 2 // main.c 3 // cTest 4
// 5 // Created by on 13-10-8. 6 // Copyright (c) 2013年. All rights reserved. 7
// 8 9 #include ...
分类:
编程语言 时间:
2014-05-23 10:53:27
阅读次数:
251
1.写出下列算法的时间复杂度。
(1)冒泡排序;
(2)选择排序;
(3)插入排序;
(4)快速排序;
(5)堆排序;
(6)归并排序;...
分类:
编程语言 时间:
2014-05-22 11:46:43
阅读次数:
321
一、算法思想描述1)令i = L,j = R,将基准数挖出形成第一个坑(基准数可以选择第一个位置上的数作为基准数,也可以选择其他位置上的数作为基准数)。2)j-- 。从后往前扫,找到第一个比基准数小的数。并将其“挖出”,填到上一个形成的坑中arr[i]3)i++ 。 从前往后扫,找到第一个比基准数大的数。并将其“挖出”,填到上一个形成的坑中arr[j]4)不断地重复2)、3)直到i == j,...
分类:
其他好文 时间:
2014-05-22 06:48:32
阅读次数:
208
排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排序O(n2)O(n2)稳定O(1)二叉树排序O(n2)O(n*log2n)不一定O(n)插入排序O(n2)O(n2)稳定O(1)堆排序O...
分类:
其他好文 时间:
2014-05-21 23:31:35
阅读次数:
310
常见排序算法主要有:插入排序(直接插入排序、希尔排序)选择排序(直接选择排序、堆排序)交换排序(冒泡排序、快速排序)归并排序基数排序外部排序一.直接插入排序算法思想:在一个待排序列中,从第二个元素开始,依次进行排序,每次都将待排序元素从后往前,依次与前面的元素进行比较,从而将带排序元素移动到一个合适...
分类:
其他好文 时间:
2014-05-21 20:03:36
阅读次数:
353
分治法,分而治之,基本思路:分,解,和。
初探分治之快速排序。...
分类:
其他好文 时间:
2014-05-21 15:34:37
阅读次数:
237
【题目】
有很多无序的数,从中找出最大的K个数。假定他们都不相等。
【解法一】
如果数据不是很多,例如在几千个左右,我们可以排一下序,从中找出最大的K个数。排序可以选择快速排序或者堆排序
[cpp] view
plaincopy
#include
#include
int cmp(const void *a,const ...
分类:
其他好文 时间:
2014-05-21 07:30:07
阅读次数:
234
defer顾名思义就是延迟执行,那么defer在Golang中该如何使用以及何时使用呢?A"defer"statementinvokesafunctionwhoseexecutionisdeferredtothemomentthesurroundingfunctionreturns,Golang的官方时这么定义的。1.那么在什么情况下会调用defer延迟过的函数呢?从文档中可以知道..
分类:
其他好文 时间:
2014-05-20 23:12:41
阅读次数:
265
自己学了3个星期的GO吧,然后在朋友帮助下开始了一份GOLANG的手游开发的工作,一段时间下来感觉还算不错,今天突发奇想,想再同时多学学erlang,左手GOLANG在手,右手ERLANG在手,天下我有,O(∩_∩)O哈哈~
记录下自己的erlang环境搭建吧。。。。。。 1.当然是去到...
分类:
其他好文 时间:
2014-05-20 10:34:02
阅读次数:
253