traveling in cumputer science!!
发布时间:2016-02-21 21:16:59
1.归并排序理论
基本思想是将两个已排序的表归并为一个有序表。归并排序也是分治策略的思想体现。
(1)按递归的方法,从上向下的角度来思考,把待排序表一分为二,然后将分割后的两个表再次平分,直到分割后只剩下一个元素为止,然后将分割的结果进行两两归并,直到递归程序结束,排序完成
(2)按迭代的方法,从下向上的角度来思考,首先把待排序表中每个元素都看作一个有序表,然后将元素两两归并,然后把操作后的表中元素每对儿看作是一个有序表,然后再以对儿为基础两两归并,同理直到将所有元素归并为一个有序表,排序结束
3.总结
?(1)思考了递归与迭代的两种逆向思维
?(2)理解了分治策略的实践
?(3)程序中尝试了C++中I/O文件操作方法
? 参考链接:http://blog.csdn.net/mak0000/article/details/3230199......【阅读全文】
发布时间:2016-02-21 11:01:43
1.堆排序理论
?本方法采用最大堆结构,最大堆是一棵完全二叉树也是一棵最大树,最大树是指在树中,若一个结点有儿子结点则其关键字值都不小于其儿子结点的关键字值。
?根据需要排序的序列list,
?(1)把list创建为最大堆结构,这一步不用添加额外存储空间,以list本身为堆的存储结构,从首元素开始逐个将元素加入堆中,每加入一个就要重新调整为最大堆,这样直到最后一个元素加入调整成与原list对应的最大堆;
?(2)取堆顶元素,也就是(1)调整后的list的首元素,使其与堆list的末尾元素交换,这样就形成了除去最大元素的一个新堆,调整新堆为新的最大堆,这一过程中就不再考虑交换到末尾的旧的最大堆的堆顶元素,调整后就形成了比原list缺省了最大元素的新最大堆,按照这个规则每次都取新的最大堆的堆顶元素与新的最大堆的末尾元素交换,然后调整为比上一最大堆少一个元素的新最大堆,直到所有list元素取完,原list就形成了一个升序的排列
3.总结
?(1)最大堆的父节点与子节点间的关系挺有意思,依据这个关系很方便的进行堆调整
? ......【阅读全文】
发布时间:2016-02-20 17:27:31
1.快排序理论:
快速排序是一种平均时间性能非常好的方法。一般排序算法,每次循环之后只能减少一个数据量因此复杂度是O(N2),而快排序是选定基准元素,一般取第一个,每次安排完一个数据后还能将其余数据分成一组比它大和一组比它小的两组数据,按此方法,再依次分别对分好类的数据进行排序操作,下面以一组数据举例。
3.总结
?这次实现代码过程中遇到的问题
?(1)遇到“segmentation fault”错误,段错误,经过查资料,知道是指针误操作导致,错误原因:程序中指针没有初始化就进行相应操作
?(2)压栈操作压入数据异常,此处也属于指针操作错误,指针操作前应先初始化,C++ 用new关键字, C里面用malloc函数
? 使用实例:
? new:
? int *p = new int(10);
? 注意使用结束时使用delete释放:
? delete p;
? malloc:
? ......【阅读全文】
发布时间:2015-12-31 11:37:04
关闭 mongodb 出错: Error: shutdownServer failed: not authorized on admin to execute command { shutdown: 1.0 }
开启的操作是在/etc/mongo.conf,添加如下设置:
从报错内容上看是权限不够,但不明了为什么,因为已经使用的超级用户权限:
经过查询错误解决办法,了解到是集群管理权限不够,添加相应权限之后就可以解决问题,变更用户权限如下:
成功关闭数据库系统:......【阅读全文】
发布时间:2015-12-29 22:21:39
mongodb 的 C++驱动安装过程以及注意问题
安装C++版驱动之前,先安装C版的驱动
安装平台:ubuntu14.04 64位
安装PDK
下载安装包,并配置tar xzf mongo-c-driver-1.3.0.tar.gz
make && make install
系统:Linux 或 OSX 编译器:clang++ 3.4+ 或 g++ 4.9+ Cmake:CMake 3.1+
安装新版的Cmake
下载安装C++驱动
./example: error while loading shared libraries: libmongoc-1.0.so.0: cannot open shared object file: No such file or directory
LD_LIBRARY_PATH=/usr/local/lib ./example
可知链接库没有mongoc.conf配置文件,因此创建,并在文件中加入mongoc库的路径:......【阅读全文】