- 博客(24)
- 收藏
- 关注
转载 冒泡排序--python
def bubbleSort(nums): i = len(nums) - 1 while (i > 0): last_index = 0 for j in range(i): if nums[j] > nums[j+1]: ...
2017-09-01 23:18:00 96
转载 windows下C++高精度计时
写代码时,经常会计算某一段代码的运行时间,以下提供一个微秒级别的类供参考class CTimeCost { public: CTimeCost(const string &str) : m_str(str) { QueryPerformanceFrequency(&...
2016-10-11 10:36:00 127
转载 堆排序
堆排序//堆是一棵完全二叉树或近似完全二叉树;若任何一非叶子节点i满足:value[i] <= value[2i+1] && value[i] <= value[2i+2]则称为小顶堆;若任何一非叶子节点i满足:value[i] >= value[2i+1] &&value[i] >= value[2i+2]则称为大顶堆;...
2016-09-27 17:08:00 90
转载 归并排序
归并排序:基本思想:把待排序序列分成相同大小的两个部分,依次对这两部分进行归并排序,完毕之后再按照顺序进行合并。时间复杂度: O(nlog2n)-->O(nlog2n)空间复杂度:O(1)是否稳定排序:稳定#pragma once//merge ordered array a[left:i] & array[i + 1:right] to b...
2016-07-18 20:53:00 103
转载 希尔排序
希尔排序:可看作直接插入排序的改进版.基本思想:将整个待排序序列,按照一定的间距gap分割成若干个子序列.然后再分别进行直接插入排序.最后,对全体元素进行直接插入排序.时间复杂度:O(n)-->O(n^2)空间复杂度:O(1)是否稳定排序:不稳定void ShellSort(int array[], int n){ for (in...
2016-07-15 16:32:00 84
转载 快速排序
快速排序基本思想:1.选择一个基准哨兵元素,通常选择第一个或者最后一个元素(可改进);2.通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的元素值比基准值大;3.此时基准元素放入正确位置;4.然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序;时间复杂度:O(nlog2n)-->O(n^2)...
2016-07-15 13:38:00 121
转载 直接插入排序
直接插入排序是不断的将一个元素插入到已排序的序列中.时间复杂度:O(n)-->O(n^2)空间复杂度:O(1)是否稳定排序:稳定void insertSort(int *array, int n){ for (int i = 1; i < n; ++i) { int temp = array[i]; ...
2016-07-14 13:44:00 143
转载 冒泡排序
冒泡排序:对还未排序的序列,自前向后相邻元素依次比较和调整,让大的元素下沉,小的元素上浮.时间复杂度:O(n)-->O(n^2)空间复杂度:O(1)是否稳定排序:稳定void bubbleSort(int *array, int n){ int i = n - 1; while (i > 0) { in...
2016-07-13 16:21:00 78
转载 直接选择排序
直接选择排序:直接选择排序实质是一种交换排序.每次从待排序序列中选取关键字最小的元素,与当前元素交换,直到全部排序.时间复杂度:O(n^2)-->O(n^2)空间复杂度:O(1)是否稳定排序:不稳定void selectSort(int *array, int n){ for (int i = 0; i < n; ++i) {...
2016-07-11 11:01:00 82
转载 error C2678
自定义结构类型,为支持插入到stl set或者排序,一种方式是重载operator<运算符成员函数.如果忘记将函数标识为const,则在编译时会报6>c:\program files (x86)\microsoft visual studio 10.0\vc\include\xfunctional(125): error C2678: binary '<' : no...
2016-05-28 17:41:00 162
转载 多线程相关------临界区CriticalSection
多线程一直是短板,整理相关知识方便查询临界区(Critical Section)临界区是一段供线程独占式访问的代码.在任意时刻,若有一个线程正在访问该代码段,如果其他所有试图访问的线程都将被挂起,直到访问的线程离开该代码段才可进入,保证线程安全. 适用于控制数据访问. 因其线程所有权其可以用于线程间互斥,而不能用于同步.相关函数InitializeCriticalSect...
2016-05-26 14:13:00 108
转载 多线程相关------事件Event
Event可以实现不同进程中的线程同步.相关函数:CreateEvent创建或打开一个事件对象HANDLE WINAPI CreateEvent( _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes, _In_ BOOL bManualReset, _In_ ...
2016-05-25 22:41:00 155
转载 多线程相关------信号量Semaphore
Semaphore用于对资源进行计数.允许一定数量的线程同时访问该资源.可以用于进程间同步相关函数CreateSemaphore 创建或打开一个信号量对象HANDLE WINAPI CreateSemaphore( _In_opt_ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, _In_ LONG ...
2016-05-24 22:05:00 140
转载 多线程相关------互斥量Mutex
互斥量(Mutex)互斥量是一个可以处于两态之一的变量:解锁和加锁.只有拥有互斥对象的线程才具有访问资源的权限.并且互斥量可以用于不同进程中的线程的互斥访问.相关函数:CreateMutex用于创建互斥量HANDLE WINAPI CreateMutex( _In_opt_ LPSECURITY_ATTRIBUTES lpMutexAttributes, ...
2016-05-24 16:25:00 126
转载 使用holder进行内存管理
在C++中,我们使用new 和delete进行自己的内存管理.void test_func(){ someType *ptr = new someType; //使用ptr ptr->function(); delete ptr; ptr = nullptr;}View Code函数开始创建一...
2015-12-03 15:33:00 157
转载 线程知识整理(一)
线程与进程的关系及区别定义: 进程Process是具有一定独立功能的程序关于某个数据集合的一次运行活动, 是系统进行资源分配和调度的一个独立单位. 线程Thread是进程的一个执行实体, 是CPU调度和分派的基本单位, 是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点运行中必不可少的资源(如程序计数器,一组寄存器,栈),它可与同属一个进程的...
2015-11-24 14:25:00 89
转载 WM_COPYDATA进程间通信方案
连续在两个公司使用WM_COPYDATA实现进程间通信了,整理一下具体步骤:一. 进程A通过ShellExecute启动进程B, 将用于通信的窗口句柄hWndA(已强转为int值)通过命令行参数传递给进程B, B保存hWndA.二. 进程B组装消息COPYDATASTRUCT copyData, 将自己用于通信的窗口句柄hWndB包含在其中,发送WM_COPYDATA...
2015-11-13 14:56:00 133
转载 stl循环删除
struct st_data{ st_data(int i) : id(i) {} int id;};对于STL标准序列容器vector/deque/list(以vector为例)当我们需清空容器vector<st_data*> vec时, 只需简单循环遍历即可 for (auto it = vec.b...
2015-10-27 17:47:00 223
转载 DoModal时带出次级窗口闪现
最近在做MFC 界面开发. 在一个CDialog窗口DoModal模态显示时, 会将次级窗口带出闪现(比如将一个窗口active, 然后点击我现在程序需要弹框的按钮,弹出弹出正常,但原来active的窗口会有一次闪现).几经周折, 才发现是因为Dialog窗口中一个控件属性中包括WS_EX_TOPMOST,且初始为WS_VISIBLE.只需将初始的WS_VISIBLE去除即可转载...
2015-10-27 10:01:00 133
转载 UI控件闪烁及刷新
我们常常在一个窗口上放置很多控件,在改变窗口大小时,控件会跟着一起闪烁...此时,可以将窗口添加WS_CLIPCHILDREN属性即可.(如果包含多层,都需要WS_CLIPCHILDREN属性)默认情况下父窗口是会对子窗口背景进行绘制的,而WS_CLIPCHILDREN含义是要求父窗口不对子窗口区域进行绘制.转载于:https://www.cnblogs.com/...
2015-08-06 19:22:00 109
转载 多项目静态库资源
WTL中,可使用以下方式加载文件资源。CResource res;if( !res.Load(type, resource) ){ DWORD dd = GetLastError(); return NULL;}当resource为资源ID时,会出现错误1813,找不到映像文件中指定的资源类型其实具体原因是CResource中使用的::FindResource第...
2014-12-02 16:25:00 125
转载 CVTRES : fatal error CVT1100 , fatal error LNK1123:
CVTRES : fatal error CVT1100: duplicate resource. type:DIALOG, name:901, language:0x0804LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏WindowUI编程使用资源编号,重复时会报出这个错误.type告诉是什么类型资源冲突,name表示资源...
2014-11-20 09:53:00 215
转载 无聊的vs2010MFC菜单
动态增加菜单项,在以前是一件比较淡定的问题.但是...在VS2010中创建MFC单文档应用程序, 默认在MainFrm中有成员变量CMFCMenuBar m_wndMenuBar;这是什么BCG的东东,不淡定了,想用以前的GetMenu()和GetSubMenu(),发现都不靠谱,搜索一圈,发现解决方案是注释掉与m_wndMenuBar有关的所有代码.OK了...
2013-01-30 18:35:00 138
转载 CString Format
浮点型转换为CString, 当小数位数不断变化时, 可以使用 CString tempStr; tempStr.Format(_T("%%.%df"), m_iDigit);///m_iDigit为需要的小数位数然后再进行浮点数与CString的转换 CString cstr; cstr.Format(tempStr, fVal);转载于:https://www....
2012-12-12 15:46:00 126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人