上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 23 下一页
摘要: 归并排序是利用"归并"技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。常见的归并排序有两路归并排序(Merge Sort),多相归并排序(Polyphase Merge Sort),Strand排序(Strand Sort)。下面介绍第一种:(一)两路归并排序最差时间复杂度:O(nlogn)平均时间复杂度:O(nlogn)最差空间复杂度:O(n)稳定性:稳定两路归并排序(Merge Sort),也就是我们常说的归并排序,也叫合并排序。它是建立在归并操作上的一种有效的排序算法,归并操作即将两个已经排序的序列合并成一个序列的操作。该算法是采用分治法(Divi 阅读全文
posted @ 2013-12-15 21:39 任智康 阅读(1657) 评论(0) 推荐(0) 编辑
摘要: 1、使用OnEraseBkgnd函数实现对话框位图背景BOOL CDisplayBmpBackGroundDlg::OnEraseBkgnd(CDC *pDC) { CRect rect; GetClientRect(&rect); CBitmap m_pBmp; BITMAP bm; CDC dcMem; m_pBmp.LoadBitmap(IDB_BITMAP1); m_pBmp.GetBitmap(&bm);//得到位图尺寸 dcMem.CreateCompatibleDC(pDC); CBitmap* pOldBitmap = dcMem.SelectObject(&a 阅读全文
posted @ 2013-12-15 13:46 任智康 阅读(5133) 评论(0) 推荐(0) 编辑
摘要: 重绘导致原因:UpdateData、Invalidate、InvalidateRect和UpdateWindow函数。1.UpdateData重绘控件函数UpdateData(TRUE)——刷新控件的值到对应的变量。(外部输入值交给内部变量)即:控件的值—>变量。UpdateData(FALSE) —— 拷贝变量值到控件显示。(变量的最终运算结果值交给外部输出显示)即:变量值—>控件显示。2. Invalidate() 该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘。这时 阅读全文
posted @ 2013-12-14 22:47 任智康 阅读(20859) 评论(0) 推荐(2) 编辑
摘要: 视图的背景一般来说是白色的,在缺省情况下,它和系统定义的颜色COLOR_WINDOW是一致的。设计者一般会希望自己的程序可以让用户轻松地改变窗口背景颜色,或是用漂亮的图片来充填背景。我们可以用Windows函数SetSysColors来重新指定COLOR_WINDOW所对应的实际颜色,来达到改变视图背景颜色的目的。但这样会同时改变其他应用程序的视图窗口背景,使得整个Windows系统的颜色设置产生混乱。另外,我们可能会用以下方法来设置视图的背景颜色,即在CView的OnDraw函数中添写如下一段程序代码:void CTestView::OnDraw(CDC* pDC) { CTestDoc.. 阅读全文
posted @ 2013-12-14 22:17 任智康 阅读(9120) 评论(0) 推荐(0) 编辑
摘要: 1)Set是一种关联容器,它用于存储数据,并且能从一个数据集合中取出数据。它的每个元素的值必须唯一,而且系统会根据该值来自动将数据排序。每个元素的值不能直接被改变。【重点】内部结构采用红黑树的平衡二叉树。multiset 跟set 类似,唯一的区别是允许键值重复!!!如:为何map和set的插入删除效率比用其他序列容器高? 为何每次insert之后,以前保存的iterator不会失效? 为何map和set不能像vector一样有个reserve函数来预分配数据? 当数据元素增多时(10000到20000个比较),map和set的插入和搜索速度变化如何?或许有得人能回答出来大概原因... 阅读全文
posted @ 2013-12-11 18:00 任智康 阅读(28693) 评论(1) 推荐(3) 编辑
摘要: 红黑树介绍:转载于:http://blog.csdn.net/eric491179912/article/details/6179908 平衡二叉树(AVL TREE)介绍转(重点)于:http://www.cnblogs.com/abatei/archive/2008/11/17/1335031. 阅读全文
posted @ 2013-12-11 17:16 任智康 阅读(5866) 评论(0) 推荐(0) 编辑
摘要: 1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表.3、全局区(静态区)(static)―,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后 有系统释放 4、文字常量区 ―常量字符串就是放在这里的。 程序结束后由系统释放 5、程序代码区―存放函数体的二进制代码。in... 阅读全文
posted @ 2013-12-11 13:50 任智康 阅读(717) 评论(1) 推荐(0) 编辑
摘要: 本文转自于:http://dalu.blogbus.com/logs/37977984.html由于一个合数总是可以分解成若干个质数的乘积,那么如果把质数(最初只知道2是质数)的倍数都去掉,那么剩下的就是质数了。例如要查找100以内的质数,首先2是质数,把2的倍数去掉;此时3没有被去掉,可认为是质数,所以把3的倍数去掉;再到5,再到7,7之后呢,因为8,9,10刚才都被去掉了,而100以内的任意合数肯定都有一个因子小于10(100的开方),所以,去掉,2,3,5,7的倍数后剩下的都是质数了。用程序可以这样解决,引入布尔类型数组a[i],如果i是质数,a[i]=true,否则a[i]=false 阅读全文
posted @ 2013-11-30 21:12 任智康 阅读(7469) 评论(0) 推荐(0) 编辑
摘要: /*动态内存传递1在C中,使用指向指针的指针解决这个问题2在C++中,使用传递指针的引用3使用函数返回值来传递动态内存*/void GetMemory1(char **p,int num){ *p=(char*)malloc(sizeof(char)*num); } void GetMemory2(char *&p,int num){ p=(char*)malloc(sizeof(char)*num); } char* GetMemory3(int num){ char *p=(char*)malloc(sizeof(char)*num); retur... 阅读全文
posted @ 2013-11-24 10:17 任智康 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn= 阅读全文
posted @ 2013-11-19 11:08 任智康 阅读(9793) 评论(3) 推荐(1) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 23 下一页