博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 2 3 4 5 6 ··· 10 下一页

2011年9月8日

摘要: 这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj, Ai原来在位置前,排序后Ai还是要在Aj位置前。 其次,说一下稳定性的好处。排序算法如果是稳定的,那么从一个键上. 阅读全文

posted @ 2011-09-08 09:41 李大嘴 阅读(450) 评论(0) 推荐(0) 编辑

2011年9月7日

摘要: 1、高位地址:栈(存放着局部变量和函数参数等数据),向下生长 (可读可写可执行)2、 堆(给动态分配内存是使用),向上生长 (可读可写可执行)3、 数据段(保存全局数据和静态数据) (可读可写不可执行)4、地位地址:代码段(保存代码) (可读可执行不可写)代码段就是存储程序文本的,所以有时候也叫做文本段,指令指针中的指令就是从这里取得。这个段一般是可以被共享的,比如你在Linux开了2个Vi来编辑文本,那么一般来说这两个Vi是共享一个代码段的,但是数据段不同(这点有点类似C++中类的不同对象共享相同成员函数)。 数据段是存储数据用的,还可以分成初始化为非零的数据区,BSS,和堆(Heap)三个 阅读全文

posted @ 2011-09-07 14:40 李大嘴 阅读(17801) 评论(1) 推荐(3) 编辑

2011年9月5日

摘要: 设在内存中有P1、P2、P3三道程序,并按照P1、P2、P3的优先次序运行,其内部计算和I/O操作时间由下图给出: P1:计算 60ms----------------I/O 80ms-----------------计算 20ms P2:计算 120ms--------------I/O 40ms-----------------计算 40ms P3:计算 40ms----------------I/O 80ms-----------------计算 40ms 调度程序的执行时间忽略不计,完成这三道程序比单道运行节省的时间是(C ) A、80ms B、120ms C、160ms D、200m 阅读全文

posted @ 2011-09-05 17:00 李大嘴 阅读(761) 评论(0) 推荐(0) 编辑

摘要: #include <iostream>using namespace std;typedef struct Node{ int value; Node *next;}Node;Node* CreateSingleLinkedList(int array[], int length){ Node *p = new Node; Node *head = NULL; Node *t = p; for (int i=0; i<length; i++) { Node *t = new Node; t->value = array[i]... 阅读全文

posted @ 2011-09-05 16:40 李大嘴 阅读(307) 评论(0) 推荐(0) 编辑

2011年9月2日

摘要: 最近看了下Inside C++里面讲的对虚继承层次的对象的内存布局,发现在不同编译器实现有所区别。因此,自己动手探索了一下。结果如下:首先,说说GCC的编译器.它实现比较简单,不管是否虚继承,GCC都是将虚表指针在整个继承关系中共享的,不共享的是指向虚基类的指针。class A {int a;virtual ~A(){}};class B:virtual public A{virtual ~B(){}virtual void myfunB(){}};class C:virtual public A{virtual ~C(){}virtual void myfunC(){}};class D:p 阅读全文

posted @ 2011-09-02 11:13 李大嘴 阅读(2294) 评论(0) 推荐(1) 编辑

摘要: 要使用RTTI特性,必须包含<typeinfo>头文件,并且要使用/GR开启运行时信息,在visual studio中打开该项目的“属性页”对话框。有关详细信息,请参见如何:打开项目属性页。单击“C/C++”文件夹。单击“语言”属性页。修改“启用运行时类型信息”属性。在g++中应该是在编译时使用命令/GR即可,(这个本人不是很确定,没实验过)先给一小段代码: class A{public:virtual ~A(){}};class B:public A{}; 一: dynamic_cast强制转换运算符将一个基类的指针或者引用转换为其子类的指针或者引用,其使用方法为:dynamic 阅读全文

posted @ 2011-09-02 11:11 李大嘴 阅读(1336) 评论(0) 推荐(0) 编辑

摘要: 使用dynamic_cast就必须在编译器中启动RTTI,即“运行时期类型识别”。默认情况下编译器是不启动RTTI的。凡是程序中用到了RTTI(比如typeid)都要在编译器中打开RTTI,这样才能正确编译。VC6下启动RTTI:Project->settings->c/c++->category->c++ language,将Enable Run-Time Type Infomation(RTTI)选中,或者直接使用/GR编译选项.VS.net2003下启动RTTI:项目->项目属性->C/C++->语言,将“启用运行时类型信息” 选择为“是”。 阅读全文

posted @ 2011-09-02 11:11 李大嘴 阅读(1063) 评论(0) 推荐(1) 编辑

2011年9月1日

摘要: 有时候编译的时候,vc6.0会一直卡着不动,除非在进程里结束,这种情况只要给vc6.0打上sp6包即可;但是你必须根据vc的版本看清你需要的是中文还是英文。sp6安装说明:1、根据硬盘上安装的Vc6版本(英文还是中文)选择sp6(english)或sp6(chinese);2、将sp6(english)或sp6(chinese)解压缩至一个临时目录;3、进入解压缩目录,运行“setupsp6.exe”即可。注:其中sp6很容易在网上搜到下载,以下下载网址仅供参考。英文版地址: http://download.microsoft.com/download/1/9/f/19fe4660-5792- 阅读全文

posted @ 2011-09-01 21:08 李大嘴 阅读(1144) 评论(0) 推荐(0) 编辑

摘要: #include<iostream>usingnamespacestd;classCBase{private:intm_a;protected:intm_pp;public:CBase(inta,intpp):m_a(a),m_pp(pp){}friendostream&operator<<(ostream&out,constCBase&b);};ostream&operator<<(ostream&out,constCBase&b){out<<b.m_a<<""&l 阅读全文

posted @ 2011-09-01 21:07 李大嘴 阅读(2218) 评论(0) 推荐(0) 编辑

2011年8月31日

摘要: Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 ... 阅读全文

posted @ 2011-08-31 20:50 李大嘴 阅读(60214) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 10 下一页