Small-Chao

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年3月1日

摘要: 6-1-1: 解: 最少的情况为第h层只有一个叶子节点,那么元素数为2h,最多的情况为该树是一颗完全二叉树,元素数为2h+1-16-1-2: 解:根据上一题我们可以知道,对于有n个元素的堆,必须满足如下式子:2h <= n <=2h+1-1 <2h+1,所以又h <= lgn < h+1,故h =└lgn┘6-1-3: 解:假设该最大元素A不在根上,那么我们知道在这颗子树中,除了跟节点,其余节点都有父节点,那么A就要比父节点的数值大,与该树是最大堆相 盾,故最大元素A在子树的根上6-1-4: 解:最小元素只可能在叶子节点上6-1-5: 解:是最小堆,满足最小堆的性 阅读全文
posted @ 2012-03-01 20:10 Small-Chao 阅读(2692) 评论(2) 推荐(2) 编辑

2012年2月24日

摘要: 如果错误,或者有更好的方法,欢迎大家指正2-1:插入排序2-1-1:描述数组A = {31,41,59,26,41,58}插入排序过程 解: 1、 31 41 59 26 41 58 2、 31 41 59 26 41 58 3、 26 31 41 59 41 58 4、 26 31 41 41 59 58 5、 26 31 41 41 58 592-1-2:写出插入排序(非升序)伪代码 解: INSERTION_SORT(A) for i <- 2 upto length(A) key <... 阅读全文
posted @ 2012-02-24 17:34 Small-Chao 阅读(5841) 评论(2) 推荐(1) 编辑

2012年2月14日

摘要: 好久没更新过博客了,刚过完年,想着呆在家无聊然后还静不下心来学习,所以早早的来到学校了,但是来了学校也静不下心来学习,呵呵~~今天瞎逛知乎,看到一个问答,说是如何能够进google实习,看到一条评论说把《算法导论》上面的习题都做一篇,顿时有些心血来潮,上个学习正好选修了这一门课程,学的也是懂非懂,就乘着这个机会重新系统的学习一篇吧,网博友们监督开始咯,认真写博客,希望毕业的时候能冲到前100名去,哈哈 阅读全文
posted @ 2012-02-14 22:22 Small-Chao 阅读(228) 评论(0) 推荐(0) 编辑

2011年10月11日

摘要: 一、Default constructor 建构操作1、Default constructor函数只会在编译器需要的时候才会自动创建,有如下四种情况 a、“带有Default constructor”的Menber Class Object(I、自动创建;II、如果class中游Default constructor,但是没有对Member Class Object进行初始化,Class会自动对构造函数进行扩张,调用Member Class Object的Default constructor;III、如果有多个Member Class Object的话,根据声明次序依次调用) b、“带有.. 阅读全文
posted @ 2011-10-11 21:14 Small-Chao 阅读(1001) 评论(0) 推荐(0) 编辑

2011年10月8日

摘要: 题目:M个同样的球放在N个同样的盒子里,不允许有的盒子空着不放,请编写程序计算共有多少种不同的分法?(用k表示)ps: 5,1,1和1,5,1是同一种分法。我的解法:#include <stdio.h>#include <memory.h>int Sum = 0;void SonFun(int m, int n,int front, int *pResult,int N){ if(n == 1) { *(pResult+N-n) = m; Sum++; return; } int *tmp = new int[N]; int temp = m/n; for(int i= 阅读全文
posted @ 2011-10-08 23:22 Small-Chao 阅读(178) 评论(0) 推荐(0) 编辑

摘要: 题目:输入一个数字,如3,要求输出6个数字,1,1,2,2,3,3,即每个数字输出两次,组成的字符串符合要求:两个1中有1个数字,两个2中有2个数字,两个3中有三个数字,即312132,如果有多种排列方法,则全部输出我的解法#include <stdio.h>#include <memory.h>void SonFun(int num, int *flag,int Sum){ int *temp = new int[Sum]; for(int i=0; i<Sum; i++){ memcpy(temp,flag,Sum*sizeof(int)); if(i+num 阅读全文
posted @ 2011-10-08 15:45 Small-Chao 阅读(331) 评论(1) 推荐(0) 编辑

2011年7月6日

摘要: 函数的调用规则(__cdecl,__stdcall,__fastcall,_pascal) 关于函数的调用规则(调用约定),大多数时候是不需要了解的,但是如果需要跨语言的 编程,比如VC写的dll要delphi调用,则需要了解。 microsoft的vc默认的是__cdecl方式,而windows API则是__stdcall,如果用vc开发dll给其他语言用,则应该指定__stdcall方式。堆栈由谁清除这个很重要,如果是要写汇编函数给C 调用,一定要小心堆栈的清除工作,如果是__cdecl方式的函数,则函数本身(如果不用汇编写)则不需要关心保存参数的堆栈的清除,但是如果是 __stdcal 阅读全文
posted @ 2011-07-06 17:03 Small-Chao 阅读(448) 评论(0) 推荐(0) 编辑

2011年6月2日

摘要: 这本书保存在我电脑里已经有两年之久了,记得以前模模糊糊翻过,大体上还有那么点点印象,最近花了一个星期仔仔细细的看了一篇,收获很大很大 首先对于很多C++知识我都有那么个概念,真要我说出什么所以然来就很难说清楚了,好比有次面试考官让我说说纯虚函数,我当时就只知道纯虚函数的写法,然后它只提供一个接口,仅此而言,看完本书之后我发现原不止这些,首先包含纯虚函数的class不能实例化,其次纯虚函数可以提供实现,只是在derived class里要加上作用域来调用,再有就是在继承理论上来讲,它提供的是接口继承。在阅读本书的过程中,碰到一些我完全没有遇到过的知识或是有点眼熟的知识点,而这又不是作者试图去传. 阅读全文
posted @ 2011-06-02 20:29 Small-Chao 阅读(291) 评论(0) 推荐(0) 编辑

2011年5月30日

摘要: 在 C++ 中, 如果一个类有只有一个参数的构造函数,C++ 允许一种特殊的声明类变量的方式。在这种情况下,可以直接将一个对应于构造函数参数类型的数据直接赋值给类变量,编译器在编译时会自动进行类型转换,将对应于构造函数参数类型的数据转换为类的对象。 如果在构造函数前加上 explicit 修饰词, 则会禁止这种自动转换,在这种情况下, 即使将对应于构造函数参数类型的数据直接赋值给类变量,编译器也会报错。下面以具体实例来说明。建立people.cpp 文件,然后输入下列内容:class People{public:int age;explicit People (int a){age=a;}}; 阅读全文
posted @ 2011-05-30 21:46 Small-Chao 阅读(1369) 评论(0) 推荐(0) 编辑

摘要: 第一章:让自己习惯C++1、视C++为一个语言联邦a、C++由四个部分组成: C、Object-Oriented C++、Template C++、 STL。b、每一个部分有自己独立的高效编程守则2、用const、enum、inline代替#definea、#define是预处理器处理的部分,当编译出错时,不容易发现错误发生在哪里,其次由于预处理器盲目的替换,会导致目标码的增大b、定义常量指针时采用如下两种方法: const char* const ptr = ”hello world“、const std::string ptr(”hello world“)c、#define并不重视作用域, 阅读全文
posted @ 2011-05-30 02:07 Small-Chao 阅读(2423) 评论(2) 推荐(2) 编辑