摘要:
序言 最近在网上看到了几篇篇讲述内存池技术的文章,有一篇是有IBM中国研发中心的人写的,写的不错~~文章地址在本篇blog最后。原文的讲述比我的要清晰很多,我在这只是把我的一些理解和遇到的一些问题和大家分享一下~~一、为什么要使用内存池技术呢 主要有两个原因:1、减少new、delete次数,减少运行时间;2、避免内存碎片。 1、效率 c语言中使用malloc/free来分配内存,c++中使用new/delete来分配内存,他们的内存申请与释放都是与操作系统进行交互的。具体的内容在严蔚敏数据结构的第八章有相关讲述,主要就是系统要维护一个内存链表,当有一个内存申请过来时,根据相应的分配算... 阅读全文
摘要:
给定一个整数数组,将数组中小于零的数都放在最左边,等于0的放在中间,小于零的放在最右边。代码如下:void swap(int* a,int* b){ *a = *a ^ *b; //a、b中不同位 *b = *a ^ *b; //b = a *a = *a ^ *b; //a = b}void ArrangArray(int* StartPos,int* EndPos){ //Step1先将小于零的放在最左边,大于等于0的数不区分,都放在右边 int* low = StartPos; int* high = EndPos; while(low < high) { while( *low 阅读全文
摘要:
微软的面试,没能参加啊,只好打听了下题目,其中一题是在20分钟内写出:计算两个日期之间天数的方法。昨天晚上想了一下,今天实现了一下,经过调试,差不多一个小时才弄好,惭愧啊代码如下:/******************************************************************** file name: CountDays file ext: cpp author: zoudh created: 2012/04/18 purpose: 计算两个日期之间的天数************************************************... 阅读全文
摘要:
*题目描述:请编写一个函数,求n个字符串的最长公共子串,n<20,字符长度不超过255. 例如有三个字符串为: what is local bus? Name some local bus. local bus is high speed I/O bus close to the processor. 则最长的公共子串为“local bus”。*要求实现的函数:char* findSameSubStr(const char* pIn[],int n) 【输入】pIn:输入的字符串 n :输入的字符串个数,即数组中元素个数 【返回】动态分配的最长... 阅读全文
摘要:
比较排序算法,就是通过对不同元素的直接比较,确定大小关系,进而将一组数据排序的方法。这种比较可以是相邻元素间的,也可是是不同元素间的。我们通常遇到的如快速排序算法、堆排序算法、冒泡排序等,都是比较排序算法。 下面我将对常见的这几种比较排序算法的算法思想进行简单介绍,并附上实现代码。 一、选择排序算法 遍历一遍数组,选择其中国最小的元素,放在数组的最左边;在剩下的元素中,继续寻找最小的元素,直到剩余元素为零。选择排序算法的稳定性比较特殊,如果待交换位置与遍历方向相一致,则稳定;如果不相一致,则不稳定。例如:待交换的元素放到最左边,你从右向左遍历选择,相同元素m1、m2,会将m2交换到m1前... 阅读全文