摘要: WPF中处理消息首先要获取窗口句柄,创建HwndSource对象 通过HwndSource对象添加消息处理回调函数.HwndSource类:实现其自己的窗口过程。创建窗口之后使用AddHook和RemoveHook来添加和移除挂钩,接收所有窗口消息。 private void UserControl_Loaded(object sender, RoutedEventArgs e) { HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource;//窗口过程 ... 阅读全文
posted @ 2013-12-04 16:51 super-白 阅读(2835) 评论(5) 推荐(1) 编辑
摘要: 10月中旬,本屌丝去北京求职Android开发,4天面试10家公司(360,汽车之家,酷我音乐等)。空闲时间参观了清华,北邮,北影,北师大等学校。还有创业大街的3w咖啡,车库咖啡,体验移动互联网的创业氛围。北京之行,收获满满。听我娓娓道来。第一天,上午10点面试了公司甲,因为之前有过电话面试,这次去... 阅读全文
posted @ 2014-10-30 12:30 super-白 阅读(3875) 评论(34) 推荐(2) 编辑
摘要: 基本思想是:1.先从数列中取出一个数作为基准数pivot。2.分区过程,将比这个数大的数全放到pivot的右边,”小于或等于它的数全放到pivot的左边“。3.再对左右区间重复第二步,直到各区间只有一个数。难点在第2步:找到pivot的位置。pivot理解成中间值,是数列的中间某位置上。pivot左... 阅读全文
posted @ 2014-04-15 14:12 super-白 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 基本思路就是将数组分成二组A,B,各自再分成二组。依次类推,当分出来的小组只有一个数据时,可以认为这个小组组内已经达到了有序,然后有序的合并相邻的二个小组就可以了。这样通过先递归的分解数列,再合并数列就完成了归并排序。void mergearray(int a[],int first,int mid,int last,int temp[]){ int i=first,j=mid+1; int k=0; while(i>aa; return 0;}代码出自 MoreWindows Blog 算法讲解的比较到位 阅读全文
posted @ 2014-03-25 11:02 super-白 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,过程中较小的元素,跳跃式的往前移。然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。举个例子,如下: 1 int a[]={2,5,8,4,6,3,1,9,7,55}; 2 int length=sizeof(a)/sizeof(int); 3 int i,j,gap; 4 5 for(gap=length/2; gap>0; gap... 阅读全文
posted @ 2014-03-20 14:36 super-白 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 直接插入排序的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。具体算法描述如下:1.从第一个元素开始,该元素可以认为已经被排序2.取出下一个元素,在已经排序的元素序列中从后向前扫描3.如果该元素(已排序)大于新元素,将该元素移到下一位置4.重复步骤3,直到找到已排序的元素小于或者等于新元素的位置5.将新元素插入到该位置后6.重复步骤2~5还是代码看着直接,C语言实现如下: 1 ... 阅读全文
posted @ 2014-03-18 10:07 super-白 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 简单选择排序法:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i 个记录交换。C语言代码如下:时间复杂度与冒泡同为O(n^2) , 简单选择排序的性能优于冒泡。 1 int a[]={3,5,4,2,6}; 2 int length=sizeof(a)/sizeof(int); 3 int n=length-1; 4 int i,j,min; 5 for(i=0;ia[j])11 {12 min=j;13 }14 } ... 阅读全文
posted @ 2014-03-17 15:59 super-白 阅读(346) 评论(0) 推荐(1) 编辑
摘要: 冒泡排序基本思想:两两比较相邻数据,如果反序则交换数据,直到没有反序为止。冒泡:较小的数(较大的数)如同气泡般慢慢浮到上面,因此命名冒泡排序,气泡排序。 还是代码看着直观,如下: int a[]={2,1,3,4,5}; int n = sizeof(a)/sizeof(int); int i,j,temp; bool exchange=true; for(i=0;i=i;j--)//a[0]顶时,较小的气泡上浮。 //for(j=0;ja[j+1]) { temp = a[j]; ... 阅读全文
posted @ 2014-03-14 15:24 super-白 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 应用程序和硬件设备的通信过程是:应用程序使用CreateFile函数打开设备,然后用DeviceIoControl()与硬件设备通信.CreateFile函数: [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)] private static extern IntPtr CreateFile( string lpFileName, uint dwDesiredAccess, uint dwShareMode, IntP... 阅读全文
posted @ 2013-12-05 16:53 super-白 阅读(1163) 评论(4) 推荐(1) 编辑
摘要: KMP算法思想: 普通的字符串匹配算法S主串必须要回溯。但回溯就影响了效率。 改进的地方也就是这里,我们从P串本身出发,事先就找准了T自身前后部分匹配的位置,那就可以改进算法。next数组的含义: T串各个位置的j值的变化定义为一个数组next “当匹配到S[i] != P[j]的时候有 S[i-j…i-1] = P[0…j-1]. 如果下面用k 去匹配,则有P[0…k-1] = S[i-k…i-1] = P[j-k…j-1]。得到P[0…k-1] = P[j-k…j-1]; next[j]=Max{ "p1...pk-1"="Pj-k+1...Pj-1" 阅读全文
posted @ 2013-11-02 16:07 super-白 阅读(363) 评论(0) 推荐(0) 编辑