03 2013 档案
摘要:#include<iostream>using namespace std;/* Name: Copyright: Author: Date: 25/03/13 09:12 Description: 虚函数的作用是多态的应用,这样用子类去new一个父类的对象将调用子类的方法 */class Base{public: Base(int j):i(j){} virtual ~Base(){printf("Base del\n");} //此处若不加 virtual,那么将不会调用基类析构 void func1(){printf("Base fu...
阅读全文
摘要:/**原型:int strcmp(const char *s1, const char * s2, size_t n);*用法:#include <string.h>*功能:比较字符串s1和s2的前n个字符。*说明:* 当s1<s2时,返回值<0* 当s1=s2时,返回值=0* 当s1>s2时,返回值>0*编程实现strncmp*/#include <cstdio>#include <cassert>int _strncmp(const char *s, const char *t, int count){ assert((s !=
阅读全文
摘要:/**原型:char *strcat(char *dest,const char *src);*用法:#include <string.h>*功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。*说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。* 返回指向dest的指针。*编程实现strcat*/#include <cstdio>#include <cassert>char * _strcat(char * dest,const char *
阅读全文
摘要:/**原型:char *strncat(char *dest, const char *src, size_t n);*用法:#include <string.h>*功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。*说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。* 返回指向dest的指针。*编程实现strncat*/#include <cstdio>#include <cassert>char * _strncat(char
阅读全文
摘要:/**原型:int strcmp(const char *s1,const char * s2);*用法:#include <string.h>*功能:比较字符串s1和s2。*说明:* 当s1<s2时,返回值<0* 当s1=s2时,返回值=0* 当s1>s2时,返回值>0*编程实现strcmp*/#include <cstdio>#include <cassert>int _strcmp(const char * s,const char * t){ assert((s != NULL)&&(t != NULL));
阅读全文
摘要:/**原型:char *strrchr(const char *s,int ch);*用法:#include <string.h>*功能:查找字符串s中第一次出现字符c的位置*说明:返回最后一次出现c的位置的指针,如果s中不存在c则返回NULL。*编程实现strrchr*/#include <cstdio>#include <cassert>char * _strrchr(const char * str, int ch){ assert(str != NULL); for( ; *str != (char)ch; str++) if(*str ==
阅读全文
摘要:/**原型:extern char *strncpy(char *dest, const char *src, int n);*用法:#include <string.h>*功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。*说明:* 如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。* 如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。* src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。* 返回指向dest的指针。*编程实现strncpy*/#include <c
阅读全文
摘要:二分搜索折半搜索,也称二分查找算法、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。时间复杂度:二分搜索每次把搜索区域减少一半,很明显时间复杂度为O(logN)。空间复杂度:O(1),虽以递归形式定义,但是尾递归,可改写为循环。二分搜索的基本实现二分查找法在算法家族大类中属于“分治法”,分治法基本都可以用递归来实现的
阅读全文
摘要:“设计者确定其设计已经达到了完美的标准不是不能再添加任何问题,而是不能再减少任何问题”,程序员应该以此为标准。。。怎样给一个磁盘文件排序?问题描述:输入:一个最多含有n个不相同的正整数的文件,其中每个数都小于等于n,且n=10^7。输出:得到按从小到大升序排列的包含所有输入的整数的列表。约束:最多有大约1MB的内存空间可用,但磁盘空间足够。且要求运行时间在5分钟以下,10秒为最佳结果。分析如下:如何在1MB的空间里对10000000个整数进行排序?而且每个数都小于10000000。实际上这个需要1.25MB的内存空间(此时考虑的是用位图表示法时,每一位代表一个数,那么10000000/(102
阅读全文