摘要: 算法思想:从数列中找出一个元素放在最前面,然后对剩下的n-1元素进行全排列。源代码:#include <stdio.h>void output(int a[], int n){ for(int i = 0; i < n; ++ i) printf("%d", a[i]); printf("\n");}void swap(int a[], int k, int t){ int b = a[k]; a[k] = a[t]; a[t] = b;}void perml(int a[], int m, int n){ if... 阅读全文
posted @ 2012-05-21 19:23 蒲蜡 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 看CSDN上有人讨论面试题,其中一题,自己动手也了一下#include <stdio.h>#define ASSERT(x) if((x)) return ;void strcpy(char* des, char* src){ ASSERT(!des || !src || !(*src)); *des = '\0'; des ++; src ++; while(*src != '\0') *(des ++) = *(src ++); *des = '\0'; src --; des --; w... 阅读全文
posted @ 2012-05-14 19:46 蒲蜡 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 算法思路:取余,再将余数逆序#include <stdio.h>void m2n(int m, char* mNum, int n, char* nNum){ int i = 0; char c, *p = nNum; while(*mNum != '\0') { i = i * m + *mNum - '0'; mNum ++; } while(i) { *p = i % n + '0'; i /= n; p ++... 阅读全文
posted @ 2012-04-25 15:25 蒲蜡 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 算法思想:给定一个数列,如果一个元素出现的次数大于数列元素总数的一半,则称为多数元素。此算法根据如果一个元素是多数元素则此数列去掉两个不同元素后,该元素仍然为多 数元素。源代码:#include <stdio.h>int candidate(int a[], int n, int m){ int j = m; int c = a[m]; int count = 1; while((j < n) && count > 0) { j ++; if(a[j] == c) c... 阅读全文
posted @ 2012-04-10 22:19 蒲蜡 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 一.函数重载:函数名相同,返回值相同,只有参数不同(注意:float,double类型参数).二.模板函数:可以将参数和返回值设置为模板类型,编译时候确定具体类型.三.当模板函数和同名的非模板函数重载时,首先寻找与参数类型完全匹配的非模板函数,找到了,则调用它,如果没找到,则寻找函数模板,找到后具体化函数模板,而后调用该模板函数.四.用new分配的数组,必须delete []清除,确保数组中的对象能够正常的调用析构函数,清理资源.五.用new创建的类指针,如果被赋值指针并非类指针类型,则调用delete销毁时,一定要先转换回所分配的类指针类型,然后销毁该指针,否则不能正常完成析构. 例: vo 阅读全文
posted @ 2012-03-15 20:18 蒲蜡 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 一、基本概念 XPCOM是一个跨平台组件模型,它的全称为Cross Platform Component Object Module。XPCOM实现了一个框架(framework),这个框架中,它允许开发者打破单一整体的软件项目,而分解为多个更小的模块化碎片(pieces),这些碎片也即组件(components)。XPCOM组件开发类似于Microsoft COM组件,有COM基础者,很容易学习XPCOM。二、搭建开发环境 XPCOM开发需要Gecko SDK ,由于Gecko SDK包含在XULRunner中,因此只要下载XULRunner SDK就可以进行开发,下面仍然以XULRunne 阅读全文
posted @ 2012-02-13 08:47 蒲蜡 阅读(2323) 评论(0) 推荐(0) 编辑
摘要: 一、基本概念 XUL是一个Mozilla使用XML来描述用户界面的一种技术,使用XUL你可以快速的创建出跨平台,基于因特网的应用程序。 XULRunner是一个由Mozilla基金会开发运行时环境,用来为XUL和XPCOM应用程序提供统一的后端运行环境。所有基于XUL的应用程序都是运行在XULRunner之上的,比如我们比较常用的Firefox和Thunderbird。 Gecko是套开放原始码的、以C++编写的网页排版引擎,目前为Mozilla家族网页浏览器以及Netscape 6以后版本浏览器所使用,XULRunner使用的也是它。二、搭建开发环境 1、XULRunner为XUL应用程序提 阅读全文
posted @ 2012-02-10 08:45 蒲蜡 阅读(2298) 评论(4) 推荐(3) 编辑
摘要: 注解:学习逆向并不是想去破解一个大型工程,只为让自己的代码更完美。一、基础知识1、Debug版本下 while,do-while,for各不相同。2、Relase版本下 <1>当循环采用常量为判断条件时,相同逻辑的三种循环生成的代码完全相同。 <2>当循环采用变量为判断条件时,相同逻辑的while与for生成的代码完全相同,而do-while则自称一格。3、SP指向栈顶,堆栈一般通过BP来进行访问,如下 PUSHEBP //EBP值压栈,保存原来值 MOVEBP, ESP //ESP值送EBP,通过EBP访问堆栈 栈模拟图: ESP+4指向0012FFF4, ESP+4 阅读全文
posted @ 2011-12-23 22:04 蒲蜡 阅读(740) 评论(0) 推荐(0) 编辑
摘要: 问题描述:一个背包容量为V,有N件不同类别的物品体积和价值分别为:v[i], w[i],把这些物品装入背包中保证背包中物品的价值最高。背包问题分为以下几种:一、0/1背包问题1、算法描述:背包里的物品不能有重复,属于不同类别;2、算法方程式:f[i][v] = max{f[i-1][v], f[i-1][v - c[i]] + w[i]};3、算法举例:列(物品类别) 行(背包容量) 行列交叉得到背包内物品的价值01234567890003333333310034477777200345789912300345781011124、源代码:#include<stdio.h>stati 阅读全文
posted @ 2011-12-12 22:20 蒲蜡 阅读(282) 评论(0) 推荐(0) 编辑