编程珠玑
ju136
这个作者很懒,什么都没留下…
展开
-
编程珠玑第8章
正文中所提及的算法可以在ecnu oj 1109上面找到。templateT maxSubSum(T *a, int n){ T s = 0, t = 0, mx = a[0]; for (int i = 0; i < n; ++i)原创 2011-10-02 19:05:40 · 1808 阅读 · 4 评论 -
编程珠玑第8章-课后习题10题补充
按照原题的意思是在题目上进行扩展。本来是要找一个连续子数组,其和最大。那么现在习题的要求是找到这么一个连续子数组,其和的绝对值最接近0。O(n^3)或O(^2)的实现都很好处理。O(n^3)到O(n^2)的差别在于可以一次性求出sum(i ~~j)的值。这个可以想一下的。如下例int sum[n];sum[0] = a[0];for (int i = 1; i < n;原创 2011-11-16 12:54:10 · 2044 阅读 · 2 评论 -
一个简单的C程序
从终端读入一个字符,再从终端输出。#includeint main(void){ int c; while ((c = getc(stdin)) != EOF) if (putc(c, stdout) == EOF) fprintf(stderr, "Error occur when put char\n"); if原创 2011-11-15 22:17:55 · 680 阅读 · 0 评论 -
编程珠玑第五章
直接来习题吧1、第一题可以看一下林锐的高质量C/C++编程2、3、4、5、第五题很明显不应该每次都用 for (i = 0; i < n - 1; ++i) assert(a[i] < a[i+1]);如何利用二分的性质来进行处理还是一个问题。一种办法是:int bs(int *a, int b, int e, int v){ int原创 2011-10-02 12:56:13 · 1986 阅读 · 5 评论 -
编程珠玑第一章补充
2、求出2.5亿个整数中不重复的数字,注意内存无法存下2.5亿的数字。(1)说明你的思路(2)写出你的算法,可以用语言实现或者用伪代码表示 个人提示:位图法1、这里用到两个位图,先填充第一个位图a。当发现一个数字被填充过之后,则用这个数字填充b。很明显,b中记录的是重复出现过的数字。2、当扫描完一次之后。再扫描b位图。只要出现在b位图中的数,就拿去清除a原创 2011-11-16 22:55:25 · 840 阅读 · 0 评论 -
LeetCode 题目之 数组两数之和问题
LeetCode上的一个题:给定一个数组,寻找在这个数组中是否存在两个数之和为某个定值。要点:1、一个数就是一个数,比如[2, 1],寻找和为4时,不能使用2+2。2、需要输出位置。排序方法首先排序,然后按照编程之美中提到的方法进行处理。代码如下.#include#include#includeusing namespace std;c原创 2011-11-16 09:42:15 · 2902 阅读 · 1 评论 -
编程珠玑第四章
正文里面涉及到程序设计方法学的内容。不再细述1、加及条件是02、这个函数可以写成如下形式:int bs(int *a, int begin, int end, int v){ int *b = a + begin, *e = a + end, *mid = NULL; if (!a) return NULL; while (b < e)原创 2011-10-02 00:02:59 · 1147 阅读 · 2 评论 -
面试题整理-链表形式大数求和
两个整数,每位的十进制表示都放到链表中,不过是倒序的,需要求出其结果。原题如下:Add Two NumbersYou are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes cont原创 2011-11-17 20:38:47 · 1867 阅读 · 0 评论 -
面试题整理-C++ 序列化对象
题目:在C++里面,两台机器之间的函数相互调用,需要传递对象。采用什么样的方法可以把C++对象序列化之后,在两台机器之间,像字符串一样传输。解法:想到boost库中是有一个序列化类的。在这里,我们直接利用这个类来进行处理。#include #include #include #include #include using namespace std;class gps_posit原创 2012-08-29 17:45:29 · 2349 阅读 · 0 评论 -
编程珠玑第14章
这里把所有关于堆的操作写出来。当做标程吧。#include#include#define ms 1025typedef struct _heap{ int a[ms]; int size;}heap;heap h;static void _shift(he原创 2011-10-04 13:02:42 · 1020 阅读 · 0 评论 -
编程珠玑第12章
正文如何生成0~n-1内的m个随机整数1、方法一比如要从5个数里选出2个数,第一个数的概率是2/5,第二个数的概率是1/4,然后是0/3那么现在已经很清楚了。可以写代码如下:for (int i = 0; i < n; ++i) if (ra原创 2011-10-03 18:57:40 · 1116 阅读 · 2 评论 -
编程珠玑第11章
正文插入排序与快速排序习题1、最大值,最小值不用排序O(n)时间可以找到中值也可以不排序O(n)可以找到均值O(n),不过对于浮点数来说,一般求均值,先排一下序,精度会提高。众数一般用散列效果很好。2、3、4、修改程序,最坏原创 2011-10-03 12:55:48 · 994 阅读 · 0 评论 -
编程珠玑第9章
代码调优:全文解读1、求模: if (num > n) num -= n; 不要使用 num %= n; (当num只是n的1倍多一点的时候)。2、注意在访问内存的时候,要注意内存的连续性,如果访问的内存不是连续的,那么程序的运行速度也会受到极大的影响。原创 2011-10-02 21:37:49 · 1258 阅读 · 5 评论 -
编程珠玑第一章
原文中的问题:如何在1MB的空间里面对一千万个整数进行排序?并且每个数都小于1千万。实际上这个需要1.25MB的内存空间。1MB总共有838,8608。所以估计也可以在1MB左右的空间里面进行排序了。#include #include #define BITS原创 2011-09-29 00:36:32 · 1732 阅读 · 0 评论 -
编程珠玑第二章
A题给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中一32位整数。1、在文件中至少存在这样一个数?2、如果有足够的内存,如何处理?3、如果内存不足,仅可以用文件来进行处理,如何处理?答案:1、32位整数,包括-2146473648原创 2011-10-01 15:40:03 · 2677 阅读 · 3 评论 -
编程珠玑第六章
如果要提高软件的性能,需要从下面几个方面入手:1、算法与数据结构2、算法调优3、数据结构重组4、与系统无关的代码的调优(float取代double)。5、与系统相关的调优,把经常使用的函数进行加速,比如使用汇编6、硬件上使用浮点运算器。可以留个原创 2011-10-02 13:46:58 · 1188 阅读 · 0 评论 -
编程珠玑第7章
1、如何进行估算2、估计程序所需要内存数目与时间。3、安全系数。要把性能尽量低估,把安全系数做足。4、Little定律房间里面有60个人,每个人在里面的时间 是3小时,也就是说,每个小时只能进去20个人。如果我们前面还有20个人,说明我们还要等一个小时。我有地原创 2011-10-02 14:58:53 · 870 阅读 · 0 评论 -
编程珠玑第三章
习题1、首先是按照税率找到刚好税率最好的情况。这里用二分。int a[100] = { 2200, 2700, ....}double c[100] = {0, 0.14, 0.15, 0.16, ...}首先用二分找最刚好比其小的那个数int b原创 2011-10-01 21:28:17 · 2738 阅读 · 0 评论 -
编程珠玑第10章
正文如何处理压缩数据,最好是找到数据背后的公式。如何存储矩阵。习题1、把部分数据放到磁盘中,那么相应的代码里面的数据会减少。2、三元组矩阵应该也可以算一种处理方式。3、略去4、略去后面都略去,唉都在讲数据压缩~~原创 2011-10-03 12:48:43 · 1017 阅读 · 0 评论 -
编程珠玑第13章
正文为了解决在12章中的随机数问题,本章中的目的是对查看是否在数组中的情况进行处理。那么这里采用了以下几种方法:1、采用C++的set2、采用数组3、采用链表,顺序搜索,插入时不用移动。结果是数组的比链表的要快:1、链表需要读入的内存数比数组大2、数组原创 2011-10-03 20:01:08 · 1020 阅读 · 0 评论 -
面试题整理-线性时间求最长回文子串
Longest Palindromic SubstringGiven a string S, find the longest palindromic substring in S. You may assume that the maximum length ofS is 1000, and there exists one unique longest palindromic substr原创 2011-11-17 21:37:57 · 1443 阅读 · 0 评论