03 2014 档案
摘要:1、error C2440: 'initializing' : cannot convert from 'int (__stdcall *)(void)' to 'void (__cdecl *)(const char *)' This conversion requires a reinterpret_cast, a C-style cast or function-style cast 解决方法:要对GetProcAddress()函数的指针强制转换,如 typedef void (*PFN)(LPCTSTR); PFN pfun=(PFN)
阅读全文
摘要:堆排序有两个重要的步骤:初始化堆和依次交换(树根和最后一个),然而这两步都涉及堆的调整。以大根堆为例i01234567891011a[i]0162031117849326523从a[1]开始可以保证,结点a[n]的父结点为a[n/2],子结点为a[2*n]和a[2*n+1];初始化的堆如下:要从最后一个非叶子结点开始调整:即从17开始,在17,65,23中选择最大的并交换 交换20与65,由于a[2]与a[5]交换了,a[5]还有子结点,所以要对a[5]进行调整a[5]调整后为: 至此,堆的初始化已经完成了!排序时,每次都是树根a[1]与最后一个叶子结点20交换,之后调整a[1] 65...
阅读全文
摘要:介绍一种高效的KMP算法:代码可以直接运行#include #include using namespace std;void preKmp(char* s,int len,int* next){ int i=0,j=-1; next[0]=-1; while(i-1 && s[i]!=s[j]) j=next[j]; i++; j++; if(s[i]==s[j]) next[i]=next[j]; else next[i]=j; }}int KM...
阅读全文

浙公网安备 33010602011771号