- 博客(76)
- 资源 (15)
- 收藏
- 关注
原创 求数组里出现一次的数字~其他数字出现三次~
int singleNumber(int A[], int n) { int num = 0; int ret = 0; for(int i = 0; i < 32; i++) { num = 0; for(int j = 0; j < n; j++) {
2014-07-02 22:03:01
554
原创 数组数对之差的最大值
int MaxSub(int *a,int len){ int maxS = a[0]; int sub = maxS-a[1]; int i = 1; for(; i < len; i++) { if(sub < (maxS-a[i])) sub = maxS-a[i]; if(maxS < a[i]) maxS = a[i]; } r
2014-06-25 22:38:08
629
原创 二分查找
int BinarySearch(const int *a,const int len, int key){ int mid = 0; int left = 0; int right = len-1; while(left<=right) { mid = left + (right - left) / 2; if(a[mid] < key)
2014-06-21 18:52:30
400
原创 后序遍历的非递归实现
void PostOrder(Node *node){ node *cur = NULL; node *pre = NULL; stack s; s.push(node); while (!s.empty()) { cur = s.top(); if ((cur->left == NULL && cur->right == NULL) || (!pre && (p
2014-06-16 16:50:45
488
原创 中序遍历的非递归实现
void InOrder(Node *node){ stack s; s.push(node); Node *p = node; while (!s.empty()) { while (p) { s.push(p); p = p->left; } if (s.empty()) { p = s.pop(); visit(p->value);
2014-06-16 16:28:24
548
原创 前序遍历的非递归实现~(两种方法)
void PreOrder(Node *node){ stack s; s.push(node); Node *p = node; while (!s.empty()) { while (p) { visit(p->value); s.push(p); p = p->left; } if (s.empty()) { p = s.pop();
2014-06-16 16:26:58
736
原创 求数组里出现一次的数字~其他数字出现两次~
int OnlyOnce(const int *a, int len){ int x = a[0]; for (int i = 1; i < len; i++ ) { x ^= a[i]; } return x;}
2014-06-16 14:54:01
411
原创 连续子数组的最大和
int MaxSum(int *a, int len){ int sum = 0; int tem = a[0]; for(int i = 1; i < len; i++) { if (tem < 0) tem = a[i]; else tem += a[i]; if (tem>sum) sum = tem; } return sum;}
2014-06-09 14:27:04
370
原创 插入排序
void InsertSort(int *a, int len) { int i=0; for(i = 1; i < len ; i++) { int j = 0; int key = a[i]; for(j = i - 1 ; j >= 0 ; j--) { if(a[j] < key) break; a[j+1] = a[j]; }
2014-05-25 14:36:53
384
原创 冒泡排序
void BubbleSort(int *a, int len){ int i = 0; for(i = 0; i < len - 1; i++) { int j = 0; for( j = 0; j < len - i - 1; j++) { if(a[j] > a[j+1]) { int tem = a[j]; a[j] = a[j+1];
2014-05-25 14:35:47
380
原创 选择排序
void SelectSort(int *a, int len){ int i = 0; for( i = 0; i < len - 1; i++) { int j = 0; int min = i; for(j = i + 1; j < len; j++ ) { if( a[min] > a[j] ) min = j; } int tem =
2014-05-25 14:35:09
369
原创 TLS 线程局部存储
TLS(Thread Local Storage) 线程局部存储 所有的线程都共享着进程的虚拟地址~ 局部变量为每个线程所独立共享的,静态变量和全局变量是进程中所有线程一起共享的~ TLS可以为线程提供一个唯一的数据用一个全局的索引~每个线程 有自己的副本~各个线程互不影响~其实所保存的数据就是线程关联的~先看个图:如图可见每个线程有自己独立的TLS表格,相当于一个数组
2014-05-21 00:09:42
779
原创 公共子串
#include #include using namespace std;void SearchMax(const char *strA, int lenA,const char *strB, int lenB){ int i = 1; int j = 1; int sign[50][50] = {{0,0}}; for(; i < lenA; i++) { for(j
2014-05-18 20:27:55
390
原创 匿名管道 获取控制台输出
#include #include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ SECURITY_ATTRIBUTES saPipe; saPipe.nLength = sizeof(SECURITY_ATTRIBUTES); saPipe.lpSecurityDescriptor = NUL
2014-05-17 19:11:40
2054
原创 单链表的反转
void InitList(Node *pHead){ Node* pList = pHead; int i = 0; for(; i < 10; i++) { Node *pNode = new Node; pNode->data = i; pNode->next = NULL; pList->next = pNode; pList = pNode; } }
2014-05-17 12:14:26
423
原创 全排列
void Range(int *a, int len,int s){ int i = 0; if(s == len-1) { Print(a,len); return; } for(i = s; i < len; i++) { Swap(&a[s],&a[i]); Range(a,len,s+1); Swap(&a[i],&a[s]); }}
2014-05-15 23:15:59
432
原创 堆排序
void AdjustHeap(int *a, int len, int i){ int left = i * 2 + 1; int right = i * 2 + 2; if( left >= len ) return; int largest; if(left a[i]) largest = left; if(right a[largest
2014-05-15 23:04:54
398
原创 快速排序
void Swap(int *l, int *r){ int tem = *l; *l = *r; *r = tem;}int Partition(int *a, int s, int e) { int key = a[e]; int i = s ; int j; for(j = s ; j < e; j++) { if( key < a[j]) Swap(
2014-05-10 22:31:32
459
原创 合并排序
void Merge(int *a, int s, int m, int e){ int lLen = m - s + 1; int rLen = e - m; int *l = new int[lLen]; int *r = new int[rLen]; int i = 0; for(i; i < lLen; i++) l[i] = a[s+i]; for(i = 0; i
2014-05-10 22:09:21
505
原创 编译chromium windows 平台
之前也一直想编译一下传说中的chromium~ 由于机子性能有限 ~ 和各种编译错误而告终最近重装了系统 ,想着重头再来试下,终于成功了~ 而且chromium已经变成使用Visual Studio 2013(Revision 254340 之后,Switch the default toolchain to VS2013)记录编译chromium过程~其实按照官网
2014-03-30 22:18:50
7447
2
原创 记 boost::function 使用
#include #include #include "boost/function.hpp"typedef boost::function FuncType;class SumFun{ public: void operator()(int i) { std::cout<<"Class sumFun..."<<i+200<<std::endl; }};class
2014-03-30 21:17:13
487
原创 三段分法
随便记录下一些简单算法: 大概就是一个数字数组{4,1.5,6,8,14,2,6,8,2,34,5,7,8} 输入关键字 把数组分法为 小于关键字在数组左边,等于中间,大于在右边~ 实现:#include #define LENGTH(type,point) (sizeof(point)/sizeof(type))void Print(const int *
2014-01-11 23:22:12
479
原创 关于 _endthread _endthreadex 使用的问题
第一点:MSDN :_endthread automatically closes the thread handle;when you use _beginthreadex and _endthreadex, you must close the thread handle by calling the Win32 CloseHandle API. 这段话说_
2013-12-04 23:38:11
1898
原创 原始 socket 实现 ping ~(SOCK_RAW)
ping的原理就是给指定IP发送ICMP的数据包~实现ping源码:CPing.h/*Time :2013-9-10 22:40Title: CPing.h (实现ping)Author: Ryan Zhang*/#pragma once#include #include #define DATA_SIZE 32#define RECV_SIZE
2013-09-10 22:47:50
5317
原创 def 文件 PRIVATE 作用
对于def 文件PRIVATE 微软大叔已经解释的很清楚了~但是有些人还是不理解~ 网上又没人写的清楚 微软 大叔是这样写的: 可选的 PRIVATE 关键字禁止将 entryname 放到由 LINK 生成的导入库中。它对同样是由 LINK 生成的图像中的导出无效。(原文地址:http://msdn.microsoft.com/zh-cn/library/hyx1zcd3(v
2013-08-19 23:46:07
1193
原创 低权限向高权限发送消息 (例子 拖拽文件)
因为有UIPI的存在,当低权限向高权限发送先消息的时候,高权限的进程获取不到消息; 先看下什么是UIPI:以下摘自百度百科: UIPI指 User Interface Privilege Isolation(用户界面特权隔离),是Windows NT 6.0后(即Vista)引入的一种新的安全特性,是整个UAC机制的有机组成部分,主要用于拦截接受对自身进程MIC等级还低
2013-08-02 22:27:59
2337
原创 linux 下编译 libcurl
1.在 curl 官网http://curl.haxx.se/download.html 下载最新版curl-7.31.0.tar.gz 2.解压curl-7.31.0 3.cd 到url-7.31.0 目录下 --- ./configure --prefix=/usr/local/curl
2013-07-31 23:34:47
5278
转载 解决Windows程序界面闪烁问题经验
一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。 先来谈谈闪烁产生的原因 原因一: 如果熟悉显卡原理的话,调用GDI 函数向屏幕输出的时候并不是立刻就显示在屏幕上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。一般显卡的刷新周期是 1/80秒左右,具体数字可以自己
2012-04-12 21:23:27
495
原创 访问 GAE (修改HOST)
1.打开http://www.just-ping.com/ 在输入框里输入google.com 挑选反应时间比较快的地址比如选择shanghai IP为203.208.46.240win7下 打开C:\Windows\System32\drivers\etc\host添加一句 203.208.46.240 www.XXXX.appspot.com完成后即可打
2011-12-03 11:18:52
3754
转载 VC 如何使程序运行后自己删除自己
有时候,我们需要创建一个运行后能够自己删除自己的可执行程序即自删除程序。很明显如果一个进程通过直接调用DeleteFile()来删除自己是不可能的。必须另想办法,经过本人在网上参考很多资料后实际测试并集众家之所长,发现有二种方法效果比较好。现在将其封装成函数,这样使用将更加容易:
2011-10-10 23:22:26
459
转载 纯虚析构函数
某些类里声明纯虚析构函数很方便。纯虚函数将产生抽象类——不能实例化的类(即不能创建此类型的对象)。有些时候,你想使一个类成为抽象类,但刚好又没有任何纯虚函数。怎么办?因为抽象类是准备被用做基类的,基类必须要有一个虚析构函数,纯虚函数会产生抽象类,所以方法很简单:在想要成为抽象类的
2011-09-18 23:30:32
2080
原创 windows7 + vs2008 +WDk +DDkWizard 驱动开发环境搭建
1.安装vs2008 (这个不用多说了吧)2.下载 安装WDK7.1.0 ,(安装包可能有点大慢慢下吧),安装过程一路下一步就可以了,安装包地址 http://www.microsoft.com/download/en/details.aspx?displaylang=
2011-09-09 20:15:20
5670
3
转载 BeginPaint和GetDC有什么区别?
http://hi.baidu.com/joyeep/blog/item/d60c9351daabed19367abeaf.html 这是个windows编程问题。第一种情况显示出来的字很正常。case WM_PAINT: gdc = Be
2011-08-23 18:17:36
465
转载 浅谈HOOK技术在VC编程中的应用
引言 Windows操作系统是建立在事件驱动机制之上的,系统各部分之间的沟通也都是通过消息的相互传递而实现的。但在通常情况下,应用程序只能处理来自进程内部的消息或是从其他进程发过来的消息,如果需要对在进程外传递的消息进行拦截处理就必须采取一种被称为HOOK(钩子)的技术。钩
2011-08-23 10:59:55
319
转载 宏定义中的#,##
#,##1、在一个预处理器宏中的参数前面使用一个#,预处理器会把这个参数转换为一个字符数组。(原文:When you put a # before an argument in a preprocessormacro, the preprocessor turns t
2011-08-19 15:27:34
336
c c++ 编译器 (源代码)
2011-03-06
java 编译器 (源代码)
2011-03-06
优快云论坛-算法精华
2011-02-27
界面超级漂亮的透明记事本 GlassNotes Aero v3
2010-05-06
硬盘分区魔术师9.0简体中文版
2010-04-21
24点游戏 (c/c++)
2010-04-01
栈 计算器(c++源码)
2010-04-01
CC++面试题集(微软....)
2010-03-31
C/C++ 常见误区
2010-03-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人