摘要:
16进制字符串转化为10进制数(k_eckel转自微软高校博客K_eckel's mindview) 16进制字符串转化为10进制数 k_eckel:http://www.mscenter.edu.cn/blog/k_eckel 同学在MSN CDC电话面试(可惜我在被面试的时候全然没有这么具体的问题了:))中的一个题目:将16进制的字符串转化为10进制数字,例如“1A”,... 阅读全文
摘要:
欧几里德算法也就是辗转相除法,有着2000年的历史了。欧几里德算法依据的算法理论是一个定理:gcd(a,b) = gcd(b,a mod b)。实现源码为://递归实现int gcd(int m,int n){ if (m < n) { int tmp = m; m = n; n = tmp; } if (n == 0) return m; else return gcd(n,m % n);... 阅读全文
摘要:
计算机的最重要的功能就是用来处理信息的,而涉及到对信息的处理,查找和排序则是其中最为重要的条目。这也难怪一代算法宗师Knuth在其7卷(拟)的巨著《The Art of Programming》中整整第三卷就是查找与排序了。 这里尽量以较为正规的代码风格的代码将这些经典的排序和查找算法描述出来,目的无他,温故而知新。u 几个要用到的函数1) 随机产生测试数据的函数函数名称InitData作者k_... 阅读全文
摘要:
基于堆的优先队列实现 优先队列严格说实际上不是一种队列,因为它并不需要遵循队列的FIFO特性,而要求的基本操作包括:向队列中插入新的记录,以及移出队列中的最大的元素。我们可以以各种不同的方式来实现优先队列——只要能够满足上面的两个接口就可以了。但是基于堆的优先队列则具有较好的性能。优先队列是一种很有用的数据结构,因为实际上我们不是每时每刻都需要对数据进行严格的排序,有时候我... 阅读全文
摘要:
子串匹配——不回溯算法 (转)子串匹配当然也可以使用不回溯的方式实现,这个算法是笔者在作一个模糊查询的实现的时候想到的,没有确认和通常算法的异同,可能是一个很平常的思想:)。实现的思想很简单:每次比较子串长度的大字符串,若相等则返回,否则在大字符串中的起始位置递进,直到大字符串结束。实现源码为:int FindSubString(const char* src,const ... 阅读全文
摘要:
给定一个字符串,要求给出其所有的排列。例如给出“ABC”,则其排列有:ABC,ACB,BAC,BCA,CAB,CBA 6种。这是一个看似简单,但是实现起来却不是很容易的问题。记得去年一个师姐去参加某NB公司的笔试的时候就被这样一个问题给整了,更加郁闷的是别人是把程序都给出了,给出了输入,要给出输出。结果是倒弄了半天,最后发现是求解全排列,郁闷不已!解法一:经典的解法,也叫&... 阅读全文
摘要:
二叉树是很有用的一种数据结构,遍历则是其基本操作,这里列出实是保证完整性。几个备用的结构定义和函数://二叉树节点定义class TreeNodeElement{ public: TreeNodeElement(); TreeNodeElement(int value); TreeNodeElement(int value,TreeNodeElement* l,TreeNodeElement* ... 阅读全文
摘要:
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方... 阅读全文
该文被密码保护。 阅读全文
该文被密码保护。 阅读全文