随笔分类 -  c++学习

摘要:一、什么是旋转数组? 旋转数组是把一个数组的开始的若干元素搬到数组的末尾,递增数组的旋转数组,将递增数组的开始的若干元素放置到数组的末尾,那么很显然数组前段部分中的每个元素都不小于后面那段中的每个元素。例如{1,2,3,4,5}旋转前两个元素后得到{3,4,5,1,2}。 二、基本方法 遍历数组找到第一个小于或者等于开头元素的位置,即使旋转数组的最小值,时间复杂度为O(n)。 ... 阅读全文
posted @ 2014-04-07 20:27 小石头@shu 阅读(203) 评论(0) 推荐(0)
摘要:vs2010中如何编译dll,然后在同一解决方案其他项目中使用? 首先,把编译dll的项目加入到解决方案中,然后设置该项目为启动项目找到DLL的入口文件dllmain.cpp,点击菜单栏生成—>编译,然后点击生成,即可在debug看到对应项目名的dll和lib,然后在你需要使用的项目中,右键—>属性—>通用属性添加新引用,把刚才生成dll的项目名字添加即可。 阅读全文
posted @ 2014-04-02 20:45 小石头@shu 阅读(638) 评论(0) 推荐(0)
摘要:要想形参不包含二维数组的列数信息,即可扩展性比较强,则需传入的是后为二级指针,而为了访问能够类似于二维数组,可在函数调用前,二级指针做相关处理: int ** arr = new int *[sizeX]; for(int i =0;i<sizeX;++i) arr[i] = new int[sizeY]; 这里程序会分配内存,然后只需,对内存赋值,就可以在传入二级指... 阅读全文
posted @ 2014-03-31 21:54 小石头@shu 阅读(390) 评论(0) 推荐(0)
摘要:概念:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。(1)冒泡排序冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无 聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改 变,所以冒泡排序是一种稳定排序算法。(2)选择排序选择排序是给每个 阅读全文
posted @ 2014-03-05 21:09 小石头@shu 阅读(255) 评论(0) 推荐(0)
摘要:一队士兵被敌人包围,围成一个圈使用Josephus知道最后一个士兵去报信Josephus#include #include using namespace std;templatevoid joseph(list& a,list&b,int jumNum){ list::iterator iter=a.begin(); list::iterator temp; while(!a.empty()){... 阅读全文
posted @ 2013-11-12 21:32 小石头@shu 阅读(181) 评论(0) 推荐(0)
摘要:一 需求:程序读取用户指定的任意文本文件,然后允许用户从该文件中查找单词。查询的结果是该程序出现的次数,并且列出程序所在的行数。如果单词在行中出现多次,则程序将只显示该行一次。行号按升序显示。二 查询程序的设计1. 它必须允许用户指明要处理的文件名字。程序将存储该文件的内容,以便输出每个单词所在的原始行。2. 它必须将每一行分解为各个单词,并且记录每个单词所在的所有行。在输出行号时,保证升序输出,并且不重复。3. 对特定单词的查询将返回出现单词的所有行的行号。4. 输出某单词所在的行文本时,程序必须能根据给定的行号从输入文件中获取相应地行。数据结构设计TextQuery类实现1. 使用一个ve 阅读全文
posted @ 2013-08-03 23:57 小石头@shu 阅读(713) 评论(0) 推荐(0)