- 博客(29)
- 资源 (21)
- 收藏
- 关注
原创 希尔排序
<br /> 希尔排序(Shell Sort)是插入排序的一种。因D.L.Shell于1959年提出而得名。<br /><br />希尔排序基本思想<br /><br /> 基本思想:<br /> 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。<br /
2010-09-30 19:36:00 557
原创 二叉树的一些实现
<br />// binarytree.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <string>#include <deque>#include <cassert>using namespace std;/*模拟二叉树的一些操作:作者:wangyang时间:2010年10月29日*//*数的节点类*/template <typename T>class T
2010-09-29 16:50:00 529
原创 腾讯
<br /> <br /><br />腾讯c/c++笔试题如下:<br />1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句#define Max(a,b) ( a/b)?a:b<br />2、如何输出源文件的标题和目前执行行的行数9<br />#include <iostream>#include <string>#include <cassert>using namespace std;/*方法1:比较数a与数b向减后的符号位是1还是0*/#define MAX
2010-09-29 10:25:00 613
原创 堆排序小结
<br />堆排序<br /><br />1、 堆排序定义<br /> n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质):<br /> (1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ )<br /><br /> 若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。<br />
2010-09-28 22:39:00 622
原创 C++类中const成员小结
<br />问题如下:<br />class A{public: A(); const int d[2];};A::A()// 如何初始化数组d?{}void main(){} <br />解决办法:<br />class A{public: A(); static const int d[2];};A::A(){}const int A::d[2] = {3, 4};int main(){
2010-09-28 14:24:00 696
原创 看书中的一些发现
<br />/*非负的十进制书数转换为二进制数*/void _10_to_binary(unsigned int n){ string str; if (n != 0) { _10_to_binary(n/2); cout<<n%2; }}int main(){ _10_to_binary(12); cout<<endl;}/*注意对static变量的引用*/#include <iostream>#include <string>
2010-09-28 11:08:00 753
原创 循环队列的实现
<br />#include <iostream>#include <string>#include <cassert>using namespace std;/*用数组实现循环队列(1)、设一标志位以区别队列是“空”还是“满”(2)、少用一空间,约定“队列头指针在队尾指针的下一位置”上作为队列呈“满”状态的标志*/template <typename T>class MyDeque{public: MyDeque(int n= 10);//构造函数 bo
2010-09-28 11:05:00 7107
原创 两个队列模拟一个堆栈
<br />#include <cstdlib>#include <iostream>#include <assert.h>#include <deque>using namespace std;/*两个队列模拟一个堆栈*//*队列A、B入栈:将元素依次压入到非空的队列,第一个元素压倒对列A出栈:把队列A的前n-1个元素倒到队列B,把第n个元素去掉。此时数据在B中,下次操作,则对B操作。栈顶:把队列A的前n-1个元素倒到队列B,把第n个元素作为栈顶*/template
2010-09-27 19:49:00 6307 1
原创 计算后缀表达式
<br />#include <cstdlib>#include <iostream>#include <assert.h>#include <cmath>#include <stack>#include <cctype>#include <string>using namespace std;/*利用栈计算后缀表达式:(1)、运算数是单数字的非负整数 (2)、处理的二元整数运算符为:+、-、*、/、%、^*///后缀表
2010-09-27 19:48:00 1670
原创 一个数组模拟两个栈
<br />#include <cstdlib>#include <iostream>#include <assert.h>using namespace std;class mystack{public: mystack(int _n) { n = _n; arr = new int[_n]; memset(arr, 0, n);
2010-09-26 12:13:00 1192
原创 查找数组最大值最小值:时间复杂度最多为:o(3n/2)
#include using namespace std;/*查找数组最大值最小值:时间复杂度最多为:o(3n/2)*//*基本思想:当n=2k+1,将让max和min都等于第一个元素,让后将剩余的元素两两比较,将大值再与max比较,如果最大值大于max,则让max等与该最大值,将两个数中的小值再与min比较,若小于min,则让min等于该小值。假定n=2k,设置最大值和最小值为第一、二个元素,即Max=A[0],Min=A=[1];将n个数据按2个一组进行分组,n/2组数各自进行比
2010-09-25 09:09:00 8109 3
原创 计数排序
<br />计数排序(Counting sort)是一种稳定的排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。<br /> <br /> <br />计数排序的特征<br />当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。<br />由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1)
2010-09-23 14:46:00 835
原创 stoogeSort排序算法
今天研究了一下算法导论,很有意思的一本书,至少可以很好的训练人的思维。呵呵。不过被一个课后习题难到了:stooge算法。试着举例来证明一下,不过没有成功。不过找到了一个使用循环不变性(有的人叫循环不变式,不过感觉这种叫法好一些。)证明的。答案如下:STOOGE-SORT(A, i, j)1 if A[i] > A[j]2 then exchange A[i] « A[j]3 if i+1 ≥ j4 then return5 k ¬ ë(j-i+1)/3û
2010-09-23 12:56:00 2715
原创 借助stl中的list实现多项式的相加
<br />#include <iostream>#include <list>#include <algorithm>using namespace std;typedef struct { float coef;//系数 int expn;//指数}Element;class Polynomial{public: void create(); void display(); void add(Polynomial &poly, Polyn
2010-09-22 10:03:00 2894
原创 进程间通信
<br /><br />进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义上这也是进程间通信的手段,但是一般都不把这算作“进程间通信”。因为那
2010-09-12 13:29:00 1216
原创 消息队列IPC---------用途:进程间通信
<br />0、下面用的头文件 "common.h"<br />/*common头文件*/#define MAX_LINE 80#define MY_MQ_ID 111 //消息IDtypedef struct{ long type;//消息类型 float fval;// user message unsigned int uival;// user message char strval[MAX_LINE + 1]; // user message
2010-09-12 13:20:00 1231 1
原创 mfc中文件的操作
<br />1、打开文件夹的使用void CFileRW::Onsource() { // TODO: Add your control notification handler code here //此函数用来选择源文件 CString strFilter; strFilter="All Files(*.*)|*.*||"; CFileDialog dlg(TRUE, NULL, NULL, OFN_EXPLORER|OFN_HIDEREADONLY| OFN_ENAB
2010-09-08 10:08:00 828
原创 管道编程
<br />1、简单管道实例<br />#include <unistd.h>#include <stdio.h>#include <string.h>#define MAX_LINE 80#define PIPE_STDIN 0#define PIPE_STDOUT 1int main(void){ const char *str = "A sample message!"; int ret, myPipe[2]; cha
2010-09-07 21:31:00 815
原创 为别人做嫁衣——代理模式
<br />#include <iostream>#include <string>using namespace std;/*为别人做嫁衣——代理模式*//*小明 让 小张 代替自己向追 李娇*//*公共接口*/ class GiveGift {public: virtual void sendFlower() = 0; //送花 virtual void sendDolls() = 0; //送包庇娃娃 virtual void sendChoc
2010-09-07 13:56:00 754
原创 穿什么有这么重要吗?————装饰模式
<br />1、自己C++实现的<br />#include <iostream>#include <string>using namespace std;/*Person类,相当与Component*/class Person{public: Person(){} Person(string name) { this->name = name; } virtual void show() { cout<<"装扮的 "<<name<<endl;
2010-09-07 12:47:00 759
原创 单一职责______开放封闭原则____依赖倒转”原则(DIP)
2.2 单一职责原则 2.2.1 引言 一个优良的系统设计,强调模块间保持低耦合、高内聚的关系,在面向对象设计中这条规则同样适用,所以面向对象的第一个设计原则就是:单一职责原则(SRP,Single Responsibility Principle)。 单一职责,强调的是职责的分离,在某种程度上对职责的理解,构成了不同类之间耦合关系的设计关键,因此单一职责原则或多或少成为设计过程中一个必须考虑的基础性原则。2.2.2 引经据典 关于单一职责原则,其核心的思想
2010-09-07 10:48:00 1323
原创 getOwner与getParent的区别
<br />CWnd::GetOwner 这个函数获得窗口的拥有者的指针。如果窗口没有拥有者,则缺省地返回父窗口对象的指针。注意在拥有者和被拥有者之间的关系与父子关系在几个重要方面的差别。例如,具有父窗口的窗口被限制在父窗口的客户区内,但是被拥有的窗口可以被画在桌面上的任何位置。 CWnd::GetParent 如果这个成员函数执行成功,则返回父窗口指针;否则返回值为NULL,表明发生了错误或没有父窗口。调用这个函数以获得子窗口的父窗口(如果有)的指针。GetParent函数返回直接父窗口的指针。 要知道一
2010-09-07 09:37:00 2538
原创 关于OnOK()、OnCancel()、OnClose()、OnDestroy() 模式对话框
<br />总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别(转) <br />2009年09月22日 下午 08:33 <br />第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数,即WM消息响应函数。从应用程序结构的角度,拿对话框来说,红色的X对应的是CWnd,而处于对话框中的“确定”、“取消”按钮则对应了CDialog。 <br />第二,OnClo
2010-09-06 21:01:00 876
原创 商品促销——策略模式
Java代码 /** * <h1>策略模式</h1> * QS:做个商场收银软件,营销员根据客户所购买的商品和数量向客户收费 第一次程序 * @author xangqun * */ public class Program { /** *PS: * <pre>如果商场搞活动,商品打8折,打5折怎么办??</pre> * @param args * @throws IOException */ pu
2010-09-06 20:58:00 898
原创 简单工厂模式
<br />#include <fstream>#include <iostream>#include <string>using namespace std;class Operation{public: Operation(){} virtual int getResult() { return 0; }public://为了能在外面访问 int member_A; int member_B;};//做加法运算class AddO
2010-09-06 10:58:00 573
原创 菜单
1、弹出菜单 = CMenu m_menu; m_menu.LoadMenu(IDR_TRACKMENU); CMenu* p_menu = m_menu.GetSubMenu(0); CPoint m_point; GetCursorPos(&m_point); p_menu->TrackPopupMenu(TPM_LEFTALIGN, m_point.x, m_point.y, this); ; 2、加载动态菜单 CWnd* pWnd = AfxGetApp()->GetMainWn
2010-09-05 21:10:00 497
原创 9月5日——assert
<br />ASSERT_VALID()与 ASSERT()异同<br />ASSERT()是MFC库中的断言,用法是ASSERT(布尔表达式). <br /><br />ASSERT宏用于确保参数内的表达式正确,如果表达式为false,则会显示一个消息对话框,其中有源文件的名字和当前行号,用户可以选择中断程序或进行调试.这个宏通常用于校验参数和返回值.<br /><br />ASSERT_VALID()也是MFC库中的断言,更确切点是ASSERT断言的变种,用法是ASSERT_VALID(一个从CObje
2010-09-05 11:50:00 614
转载 PreTranslateMessage
<br />PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当需要在MFC之前处理某些消息时,常常要在这里添加代码. <br /> <br /> MFC 消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,可以改变MFC的消息控制流程,甚至可以作一个全新的控制流出来。只有穿过消息队列的消息才受PreTranslateMessage(
2010-09-01 21:28:00 913
转载 java中collection
<br />在 Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操作成批的数据或对象元素极为方便。这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结构中熟知的。例如Map,Set,List等。并且Java用面向对象的设计对这些数据结构和算法进行了封装,这就极大的减化了程序员编程时的负担。程序员也可以以这个集合框架为基础,定义更高级别的数据抽象,比如栈、队列和线程安全的集合等,从而满足自己的需要。 <br /><br />
2010-09-01 09:59:00 1238 1
信用评分模型技术与应用——陈建
2018-01-31
灰度直方图匹配算法VC++
2009-10-31
电信系统设计文档(非常详细).rar
2009-10-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人