- 博客(20)
- 资源 (8)
- 收藏
- 关注
原创 各种排序算法
快速排序:void Qsort(int a[], int low, int high){ if(low <= high) return; int first = low, last = high; int key = a[first]; while(first < last){ while(first = key) last--; a[first] = a[last]
2015-04-06 17:10:49 557
原创 最长公共连续串问题
#include #include using namespace std;int a[100][100];int getSubStringLen(string query, string text){ int max = 0; int m = query.length(), n = text.length(); for(int i = 0; i < m; ++i){ for(
2015-04-02 14:43:08 473
原创 反转句子
加句子反转, 例如将nice to meet you 反转成为 you meet to nicevoid reverse(char *p, char *q){ while(p < q){ char tmp = *p; *p++ = *q; *q-- = tmp; }}char* reverseSentence(char *s){ char *p = s; //指向单词的
2015-04-02 14:16:44 2489
原创 最大递增子序列LIS
1、一串数据的最大递增序列,输出个数例如 4,2, 6,3, 1,5,最大递增序列为, 2,3, 5,输出3#include using namespace std;#define MAXN 100int list[MAXN], dp[MAXN];int max(int a, int b){ return a > b ? a : b;}int main(){ in
2015-04-02 00:27:47 913
原创 ms笔试存档
第一题:#include #include #include #include using namespace std;int fib[10] = {1, 2, 3, 5, 8, 13, 21, 34, 55, 89};bool isFib(string s){ int a[26] = {0}, ans = 0; for(int i = 0; i < s.size();
2015-04-25 00:03:20 326
转载 数据库设计三大范式
总结起来就是:第一范式是不可拆分 第二是完全依赖 第三消除传递依赖 数据库设计三大范式为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。
2015-04-20 21:51:26 342
转载 面向对象编程3大特性 7大原则
一、面向对象的特性三个基本的特性:封装、继承与多态。1、封装面向对象编程核心思想这一就是就是将数据和对数据的操作封装在一起.通过抽象,即从具体的实例中抽取共同的性质形成一般的概念,比如类的概念.2、继承继承体现了一种先进的编程模式.子类可以继承父类的属性和功能,即子类继承了父类所具有的数据和数据上的操作,同时又可以增添子类独有的数据和数据上的操作.例如,"人类"继承了"
2015-04-20 21:42:26 1696
转载 在构造函数/析构函数中调用虚函数
先看一段在构造函数中直接调用虚函数的代码: 1 #include 2 3 class Base 4 { 5 public: 6 Base() { Foo(); } ///< 打印 1 7 8 virtual void Foo() 9 {10 std::cout 1 std::endl;11 }12 };
2015-04-19 17:32:54 6617
原创 约瑟夫环问题
用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。#include using namespace std;struct node{ int data; node *next;};void createList(node *&head, node *&tail, int n){ if(n < 1){ head = NULL; ret
2015-04-17 00:36:23 440
转载 C++函数中那些不可以被声明为虚函数的函数
常见的不不能声明为虚函数的有:普通函数(非成员函数);静态成员函数;内联成员函数;构造函数;友元函数。1、为什么C++不支持普通函数为虚函数? 普通函数(非成员函数)只能被overload,不能被override,声明为虚函数也没有什么意思,因此编译器会在编译时邦定函数。2、为什么C++不支持构造函数为虚函数? 这个原因很简单,主要是从语义上考虑
2015-04-16 21:33:51 408
转载 UDP协议格式
UDP协议在IP协议上增加了复用、分用和差错检测功能。UDP的特点: A)是无连接的。相比于TCP协议,UDP协议在传送数据前不需要建立连接,当然也就没有释放连接。 B)是尽最大努力交付的。也就是说UDP协议无法保证数据能够准确的交付到目的主机。也不需要对接收到的UDP报文进行确认。 C)是面向报文的。也就是说UDP协议将应用层传输下来的
2015-04-16 01:45:34 20531
原创 一个M*N的矩阵,元素取值1或0,问如何找到最大的正方形,其所有的元素都为1
一个M*N的矩阵,元素取值1或0,问如何找到最大的正方形,其所有的元素都为1#include #define MAX 500int matrix[MAX][MAX];int min(int a, int b){ return a < b ? a : b;}int main(){ int max = 1; int m, n; scanf("%d%d",
2015-04-11 22:53:43 8408 3
原创 算数表达式求值
不带括号时,直接遍历一次,再累和#include #include int main(){ char ch; int a[200], temp; while(scanf("%d", &a[0]) != EOF){ int i = 0; while(scanf("%c", &ch) != EOF && ch != '\n'){ scanf("%d", &temp);
2015-04-11 16:32:27 557
转载 利用union判断系统的大小端
大端模式所谓的大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;小端模式所谓的小端模式,是指数据的高位保存在内存的高地址中,而数 据的低位保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值
2015-04-10 22:47:24 688
原创 函数指针
#include using namespace std;int inc(int a){ return (++a);}int multi(int *a, int *b, int *c){ return (*c = *a * *b);}typedef int(FUNC1)(int in);typedef int(FUNC2)(int*, int*, int*);void
2015-04-06 01:38:03 414
转载 C++的五种内存存储区
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自
2015-04-06 00:40:23 514
转载 非递归遍历
2、非递归遍历前序:void preOrder2(BinTree *root) //非递归前序遍历 { stackBinTree*> s; BinTree *p=root; while(p!=NULL||!s.empty()) { while(p!=NULL) { coutp->data"
2015-04-04 23:22:39 409
转载 从输入网址到显示网页的全过程分析
作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~1. 首先嘛,你得在浏览器里输入要网址:2. 浏览器查找域名的IP地址导航的第一步是通过访问的域名找出其IP地址。DNS查找过程如下:
2015-04-02 00:33:40 4509
转载 A、B两个整数集合,设计一个算法求他们的交集,尽可能的高效。
A、B两个整数集合,设计一个算法求他们的交集,尽可能的高效。(博主能力有限,不是所有题目都会求解,第1题不是我的擅长,这里贴出来让大家知道腾讯的考题。我的重点放在第2题上面!) 第2题 题解(个人见解,仅供参考!)思路1:排序法 对集合A和集合B进行排序(升序,用快排,平均复杂度O(N*logN)),设置两个指针p和q,同时指向集合A和集合B的最小值,不
2015-04-01 21:00:00 7428 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人