
Algorithm
文章平均质量分 76
jim_wei
这个作者很懒,什么都没留下…
展开
-
二分查找 (请大家给看看,欢迎提bug,请不吝赐教)
<br />今天在读Jon Bentley的Programming Pearls,看到二分查找处,据说Jon当年做了测验90%的学生都给写错了,<br />我就顺手也写了个试试,Jon的学生都是世界Top系列名校的学生,所以我怀疑我的程序中也存在我没测试出来的缺陷<br />把程序贴出来,欢迎大家提bug,讨论。<br />#include <stdio.h>int binarySearch(int a[],int size,int target){ int lo=0,hi=siz原创 2011-04-15 13:51:00 · 720 阅读 · 1 评论 -
求最小的K个数 O(N) 一种实现-基于堆排序
题目要求:给出一组数(有n个),求出前k个最小的数:形式化描述如下:给出一组数:c1,c2,...,Cn的无序排列A,设c1算法思想:用给定排列的前k个数建最大堆,对于后面的n-k个数,逐个进行判断,Ai(K如果Ai说白了,就是开始时认为序列中的前k个数就是这k个最小数,然后通过判断剩余的数,看看是否比这k个数中最大的还小,若小则将其换出,这样到最后,被换出的数肯定比这k个数都大,所以,这k个数就是前k个最小数了;算法实现如下:template void printTheKthMins(T a[],in原创 2011-04-19 16:44:00 · 1666 阅读 · 0 评论 -
拆分,组合谜题 -【分割手链问题】【分割砝码问题】
<br />1、分割秤砣问题<br />一个40g的砝码被分成4块,这4块恰好可以称出1-40g之间所有重量(整数)。求这4块分别多重.<br />答案:1,3,9,27;这正好组成了三进制数的基,正好有三种状态:每个砝码:放左盘,放右盘,不放。所以用它们组合能表示出1~40的所有整数。<br />2、切割手链问题(引自<<啊哈,灵机一动>>,稍有修改)<br /> Qiyan.Du是一位年轻的女士,有一次她去日本旅游,感觉犹如回到了故乡,想在旅店包个房间住上7天,就到了一家店里,下面是她和店员的对话:原创 2011-04-15 11:59:00 · 2282 阅读 · 0 评论