09 2012 档案

摘要:平均时间O(NlogN),最坏O(N^2)主要过程四步:1 如果S中元素为1 或者 0 ,直接返回2 取S中的任一元素v,称为 枢纽元3 将集合按照 枢纽元大小 分成两个集合4 两个子集合递归调用2 - 3选取枢纽元方法:1错误方法:直接选取第一个2安全方法: 随即选取一个枢纽元3三数中值分割法:选取数组的中值主要代码: 1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 template <typename Comparable> 5 void quicksort( vect 阅读全文
posted @ 2012-09-27 20:53 xingoo 阅读(518) 评论(0) 推荐(0) 编辑
摘要:采用分治的思想 以O(NlogN)最坏的情形运行时间运行如果对merge的每个递归调用都采用局部声明一个临时数组,那么在任一时刻就可能有logN个临时数组处在活动期代码如下: 1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 template <typename Comparable> 5 void mergeSort(vector<Comparable> & a) 6 { 7 vector<Comparable> tmpArray(a.siz 阅读全文
posted @ 2012-09-27 19:34 xingoo 阅读(336) 评论(0) 推荐(0) 编辑
摘要:说白了,也就是大堆,或者小堆,通过删掉堆顶点,然后存入数组,来实现排序:第一阶段:构建堆最多用2N次比较第二阶段:第i次deleteMax最多用到2【logi】次比较,总数最多2NlogN-O(N)次比较代码: 1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 template <typename Comparable> 5 void heapsort(vector<Comparable> & a) 6 { 7 for(int i = a.size()/2 阅读全文
posted @ 2012-09-27 16:18 xingoo 阅读(308) 评论(0) 推荐(0) 编辑
摘要:使用希尔增量时排序的最坏为:O(n^2);代码如下: 1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 template <typename Comparable> 5 void shellsort(vector<Comparable> & a) 6 { 7 for(int gap = a.size()/2; gap > 0; gap /= 2) 8 for(int i = gap; i < a.size() ; i++) 9 {10 Comp 阅读全文
posted @ 2012-09-27 15:20 xingoo 阅读(317) 评论(0) 推荐(0) 编辑
摘要:程序代码: 1 #include "../common/InitSock.h" 2 #include <stdio.h> 3 CInitSock initSock; 4 void main() 5 { 6 char szHost[256]; 7 ::gethostname(szHost,256); 8 hostent *pHost = ::gethostbyname(szHost); 9 in_addr addr;10 for(int i =0;;i++)11 {12 char *p = pHost->h_addr_list[i]... 阅读全文
posted @ 2012-09-25 23:31 xingoo 阅读(418) 评论(1) 推荐(0) 编辑
摘要:winsock第一个版本使用sockaddr来强迫使用特定的寻址方式,这样添加其他的协议就不可能了1 struct sockaddr2 {3 u_short sa_family;//地址家族4 char sa_data[14];//不同的地址家族,不同5 };在winscok中 应用程序通过SOCKADDR_IN结构来指定IP地址和端口号1 struct scockaddr_in{2 short sin_family;//地址家族3 u_short sin_port;//端口号4 struct in_addr sin_addr;//IP地址5 c... 阅读全文
posted @ 2012-09-25 23:11 xingoo 阅读(216) 评论(0) 推荐(0) 编辑
摘要:最简单的排序算法了,每一次j--到对应的值,不会减到0,这个纠结我好久 1 #include "stdafx.h" 2 #include <iostream> 3 #include <vector> 4 using namespace std; 5 6 template <typename Comparable> 7 void insertionSort(vector<Comparable> & a) 8 { 9 int j;10 for(int p=1 ; p<a.size() ; p++)11 {12 Com 阅读全文
posted @ 2012-09-25 21:16 xingoo 阅读(295) 评论(0) 推荐(0) 编辑
摘要:1 不能遇到问题想办法逃避,要想明白这个问题为什么出现,如何避免2 不能遇到问题总寄托于别人,想让别人来帮你解决3 可以跟别人沟通自己的想法,但是自己没有主见4 代码终究只是代码,大不了回滚,不要畏惧.5 测试要用心,遇到问题不能能过且过.6 不能对代码产生恐惧感,先看函数,再看变量,最后分析一下执行顺序,没什么大不了这两天学了很多东西:1 不要完事求方法2 chrome的断电测试方法3 快速查看函数执行顺序4 变量调用方法规则5 轻微JS思想 阅读全文
posted @ 2012-09-25 21:11 xingoo 阅读(579) 评论(0) 推荐(1) 编辑
摘要:加载Winsock库函数 : WSAStartup1 int WSAStartup(2 WORD wVersionRequested,//指定想要加载的winsock库3 LPWSADATA lpWSAData//指向 WSADATA的指针,用来返回DLL库的详细信息4 );WSADat头结构 1 typedef struct WSAData 2 { 3 WORD wVersion; //库文件建议应用程序使用的版本 4 WORD wHighVersion; //库文件支持的最高版本 5 char ... 阅读全文
posted @ 2012-09-23 23:11 xingoo 阅读(1128) 评论(0) 推荐(0) 编辑
摘要:按顺序输出序列: 1 #include <iostream> 2 #include <vector> 3 #include <queue> 4 #include <functional> 5 #include <string> 6 using namespace std; 7 template <typename PriorityQueue> 8 void dumpContents(const string & msg,PriorityQueue & pq) 9 {10 cout<<msg< 阅读全文
posted @ 2012-09-23 20:13 xingoo 阅读(250) 评论(0) 推荐(0) 编辑
摘要:二项队列是 堆序 的集合,也叫 森林。其中每一种形式都有约束。二项树Bk由一个带有儿子的B0,B1,B2...组成,高度为k的二项树 恰好有2^k个结点。每一种高度只能出现一次...因此,只有1,2,4,8...等结点数目的二项树deleteMin操作需要快速的找出跟的所有子树的能力,因此需要一般树的表示方法:每个结点的儿子都在一个链表中,而且每个结点都有一个指向它的第一个儿子的指针。二项树的每一个结点包括:数据,第一个儿子,以及右兄弟下面是二项队列类构架及结点定义: 1 template <typename Comparable> 2 class BinomialQueue 3 阅读全文
posted @ 2012-09-23 19:50 xingoo 阅读(1507) 评论(0) 推荐(0) 编辑
摘要:斜堆是左式堆的自调节形式,是具有堆序的二叉树,但是不存在对树的结构限制。不含有npl信息。右路径可以任何时刻任意长,因此所有的操作最坏情况均为O(N)。与左式堆的区别:对于左式堆,查看是否左儿子,和右儿子满足左式堆的结构性质,如果不满足,交换。对于斜堆,无论是否满足,都要进行这种交换。斜堆可递归的定义如下:只有一个元素的堆是斜堆。两个斜堆通过斜堆的合并操作,得到的结果仍是斜堆。优点不需要附加空间保留路径长吗,不需要测试确定何时交换儿子 阅读全文
posted @ 2012-09-23 18:49 xingoo 阅读(1730) 评论(1) 推荐(0) 编辑
摘要:零路径长:从X到一个不具有两个儿子的结点的最短路径的长。性质:任一结点的零路径长比他的诸儿子结点的零路径长的最小值多1父节点属性值小于子节点属性值;堆中的任何节点,其左儿子的零路径长>=右儿子的零路径长;的二叉树。下面是左式堆的类型声明: 1 template <typename Comparable> 2 class LeftistHeap 3 { 4 public: 5 LeftistHeap(); 6 LeftistHeap(const LeftistHeap & rhs); 7 ~LeftistHeap(); 8 9 bool isEmpty() co... 阅读全文
posted @ 2012-09-23 16:38 xingoo 阅读(1792) 评论(0) 推荐(0) 编辑
摘要:每个程序猿学生时代仅有1000元的生活费,不知道该怎么合理利用,这是我自己的安排:400:饭卡(饭卡在手,饭菜我有)100:买书(这是学习的最佳途径,不要相信课堂能学到多少东西,图书馆的书,也仅仅当做参考,不适合自己用,因为不方便做笔记)200:咖啡+可乐+牛奶(还有平时的夜宵)100:聚餐(寝室的,朋友的,学生时代最好不要乱请客,咱没资本的)200:这部分就随意吧,买个袜子拖鞋什么的.....学校每个月300的补助:(这个不稳定,最好不要考虑在内)我觉得这个最好请那些比自己厉害的人吃饭,这样自己才能融入更高的学习氛围....挺不错的哈...唯一遗憾的,就是没女朋友的......这个...很多 阅读全文
posted @ 2012-09-23 11:53 xingoo 阅读(655) 评论(2) 推荐(0) 编辑
摘要:容易证明:一棵高为h的完全二叉树有2^h 到 2^(h+1)-1个结点。这就意味着,完全二叉树的高是[logN]特点:任意位置i:左儿子在位置2i上,右儿子在位置2i+1上,父亲在i/2上一个堆数据结构将由一个Comparable数组和一个代表当前堆的大小的整数组成:优先队列的接口: 1 template <typename Comparable> 2 class BinaryHeap 3 { 4 public: 5 explicit BinaryHeap ( int capacity = 10 ); 6 explicit BinaryHeap ( const Vector< 阅读全文
posted @ 2012-09-23 11:46 xingoo 阅读(482) 评论(0) 推荐(0) 编辑
摘要:关键字只能用在类构造函数。它的作用是不能进行隐式转换。 1 class gxgExplicit //没有关键字explicit的类 2 3 { 4 5 public: 6 7 int _size; 8 9 gxgExplicit(int size)10 11 {12 13 _size = size;14 15 }16 17 };下面是调用 gxgExplicit gE1(24); //这样是没有问题的 gxgExplicit gE2 = 1; //这样也是没有问题的 gxgExplicit gE3; //... 阅读全文
posted @ 2012-09-23 10:14 xingoo 阅读(295) 评论(0) 推荐(0) 编辑
摘要:Digital RootsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 30962 Accepted Submission(s): 9508Problem DescriptionThe digital root of a positive integer is found by summing the digits of the integer. If the resulting value is a single digit ... 阅读全文
posted @ 2012-09-22 22:44 xingoo 阅读(264) 评论(0) 推荐(0) 编辑
摘要:水题天天有,今天特别多....嘿嘿u Calculate eTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 19289 Accepted Submission(s): 8423Problem DescriptionA simple mathematical formula for e iswhere n is allowed to go to infinity. This can actually yield very accur... 阅读全文
posted @ 2012-09-22 21:42 xingoo 阅读(377) 评论(0) 推荐(0) 编辑
摘要:ElevatorTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25560 Accepted Submission(s): 13793Problem DescriptionThe highest building in our city has only one elevator. A request list is made up with N positive numbers. The numbers denote at wh... 阅读全文
posted @ 2012-09-22 00:05 xingoo 阅读(288) 评论(0) 推荐(0) 编辑
摘要:选择键值,冲突的时候采取不同的策略散列函数:简单的散列函数:1 int hash(const string & key,int tableSize)2 {3 int hashVal = 0;4 for(int i = 0; i < key.length();++i)5 {6 hashVal + = key[i];7 }8 return hashVal % tableSize;9 }比较好的散列函数: 1 int hash( const string & key,int tableSize ) 2 { 3 int hashVal =... 阅读全文
posted @ 2012-09-21 20:57 xingoo 阅读(336) 评论(0) 推荐(0) 编辑
摘要:Number SequenceTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 63888Accepted Submission(s): 14701Problem DescriptionA number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.Given A, B, and n, you are to 阅读全文
posted @ 2012-09-21 00:02 xingoo 阅读(273) 评论(0) 推荐(0) 编辑
摘要:李彦宏(百度)百度公司创始人、董事长兼首席执行官,全面负责百度公司的战略规划和运营管理。周鸿祎(360)毕业于西安交通大学管理学院系统工程系,获硕士学位。曾就职方正集团,先后担任事业部总经理、研发中心常务副主任等职。现360安全中心董事长。刘强东(京东)于宿迁中学毕业后,考取中国人民大学,就读社会学系,1996年毕业于中国人民大学社会学系,大型网购平台京东商城的CEO雷军(金山,小米)现任金山软件公司董事长,小米科技CEO。马化腾(QQ)腾讯主要创办人之一,现担任公司控股董事会主席兼首席执行官,被称为“QQ之父”,曾在深圳大学主修计算机及应用,于1993年取得深大理学士学位。 阅读全文
posted @ 2012-09-20 20:54 xingoo 阅读(549) 评论(0) 推荐(0) 编辑
摘要:B树即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果左儿子或右儿子的指针为空,则报告找不到相应的关键字;如果B树的所有非叶子结点的左右子树的结点数目均保持差不多(平衡),那么B树的搜索性能逼近二分查找;但它比连续内存空间的二分查找的优点是,改变B树结构(插入与删除结点)不需要移动大段的内存数据,甚 阅读全文
posted @ 2012-09-20 20:42 xingoo 阅读(385) 评论(0) 推荐(0) 编辑
摘要:没看懂,多看几遍吧1 简介:伸展树,或者叫自适应查找树,是一种用于保存有序集合的简单高效的数据结构。伸展树实质上是一个二叉查找树。允许查找,插入,删除,删除最小,删除最大,分割,合并等许多操作,这些操作的时间复杂度为O(logN)。由于伸展树可以适应需求序列,因此他们的性能在实际应用中更优秀。伸展树支持所有的二叉树操作。伸展树不保证最坏情况下的时间复杂度为O(logN)。伸展树的时间复杂度边界是均摊的。尽管一个单独的操作可能很耗时,但对于一个任意的操作序列,时间复杂度可以保证为O(logN)。2 自调整和均摊分析: 平衡查找树的一些限制:1、平衡查找树每个节点都需要保存额外的信息。2、难于实现 阅读全文
posted @ 2012-09-20 20:29 xingoo 阅读(478) 评论(0) 推荐(0) 编辑
摘要:详细描述,好像跟我自己写的差不多......不过终究是大神级别,讲的就是透彻1. 概述AVL树是最早提出的自平衡二叉树,在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。AVL树得名于它的发明者G.M. Adelson-Velsky和E.M. Landis。AVL树种查找、插入和删除在平均和最坏情况下都是O(log n),增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。2. 基本术语有四种种情况可能导致二叉查找树不平衡,分别为:(1)LL:插入一个新节点到根节点的左子树(Left)的左子树(Left),导致根节点的平衡因子由1变为2(2)RR:插入一个新节点到 阅读全文
posted @ 2012-09-20 19:56 xingoo 阅读(959) 评论(0) 推荐(0) 编辑
摘要:基础题:1000、1001、1004、1005、1008、1012、1013、1014、1017、1019、1021、1028、1029、1032、1037、1040、1048、1056、1058、1061、1070、1076、1089、1090、1091、1092、1093、1094、1095、1096、1097、1098、1106、1108、1157、1163、1164、1170、1194、1196、1197、1201、1202、1205、1219、1234、1235、1236、1248、1266、1279、1282、1283、1302、1303、1323、1326、1330、1334、1 阅读全文
posted @ 2012-09-20 18:51 xingoo 阅读(331) 评论(0) 推荐(1) 编辑
摘要:AVL树节点声明:1 struct AvlNode2 {3 Comparable element;4 AvlNode *left;5 AvlNode *right;6 int height;7 8 AvlNode( const Comparable & theElement,AvlNode *lt,AvlNode *rt,int h=0):element ( theElement),left(lt),right(rt),height(t)9 };计算节点高度:1 int height( AvlNode * t) const2 {3 return... 阅读全文
posted @ 2012-09-20 18:37 xingoo 阅读(321) 评论(0) 推荐(0) 编辑
摘要:又是一次的毕业季,羡慕嫉妒啊....二叉查找树类的框架: 1 template <typename Comparable> 2 class BinarySearchTree 3 { 4 public: 5 BinarySearchTree(); 6 BinarySearchTree(const BinarySearchTree & rhs) 7 ~BinarySearchTree(); 8 9 const Comparable & findMin() const;10 const Comparable & findMax() const;11 12 ... 阅读全文
posted @ 2012-09-19 20:35 xingoo 阅读(375) 评论(0) 推荐(0) 编辑
摘要:Let the Balloon RiseTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 45024Accepted Submission(s): 15983Problem DescriptionContest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges' favorite time 阅读全文
posted @ 2012-09-19 15:33 xingoo 阅读(524) 评论(0) 推荐(0) 编辑
摘要:Max SumTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 85953Accepted Submission(s): 19912Problem DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max 阅读全文
posted @ 2012-09-19 15:32 xingoo 阅读(532) 评论(0) 推荐(0) 编辑
摘要:A + B Problem IITime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 124589Accepted Submission(s): 23993Problem DescriptionI have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.InputThe first line of 阅读全文
posted @ 2012-09-19 15:31 xingoo 阅读(321) 评论(0) 推荐(0) 编辑
摘要:那一年我们研一,面对本科那些孩子们突然感觉自己已经很老了,却还在犯着很幼稚的错误。那一年我们研一,却发现曾经挑灯夜读为之奋斗的梦在慢慢破灭,这不是我们想要的生活。那一年我们研一,整天顶着高学历的帽子招摇过市的我们其实知道的真的很少。那一年我们研一,本科时得过且过的心态还未散尽却发现其实毕业离我们真的不远了。那一年我们研一,看多了身边太多的合合分分,不再相信感情的坚实,却依然带着几分希冀期盼着什么… …那一年我们研一,偶尔看到大一大二的孩子们,突然感觉他们好小啊,也默默地想像着:如果再来一次我的大学会怎么过呢?但最后还是苦笑了一下继续自己纠结的课题。那一年我们研一,突然怀念本科老师能把一个个知识 阅读全文
posted @ 2012-09-19 15:22 xingoo 阅读(716) 评论(2) 推荐(5) 编辑
摘要:程序特性规定:1 程序开始执行时,自认为一切变元的值为02 转向无定义符号,执行程序的最后一条指令 时 自动认为停机y=x+3y=x+1y=x+1y=x+1y=xn(x)=0x=x+1y=x1+x2y=x1[B] TO A IF x2 !=0 TO E[A] x2 = x2 -1 y=y+1 TO By=2xTO C IF x!=0TO E[C] TO A IF x!=0[B] y=y+1 z=z-1 TO B IF z!=0 TO E[A]x=x-1 y=y+1 z=z+1 TO Cy=x1*x2[B]TO A IF x2 != 0 TO E[... 阅读全文
posted @ 2012-09-18 23:24 xingoo 阅读(273) 评论(0) 推荐(0) 编辑
摘要:将新的节点插入双向链表的时候:iterator insert(iterator itr,const Object & x)//向双向链表中插入一个x节点{ Node *p = itr.current; theSize++; return iterator(p->prev = p->prev->next = new Node(x,p->prev,p));}LIST类的删除节点的过程://删除双向链表中的一个节点iterator erase(iterator itr){ Node *p = itr.current; iterator retVal(p->nex 阅读全文
posted @ 2012-09-18 20:19 xingoo 阅读(615) 评论(0) 推荐(0) 编辑
摘要:LIST类结构 1 template <typename Object> 2 class List 3 { 4 private: 5 struct Node//所有都是公有的 6 { 7 Object data; 8 Node *prev; 9 Node *next; 10 11 Node(const Object & d = Object(),Node *p = NUll,Node *n = Null): 12 d... 阅读全文
posted @ 2012-09-18 20:01 xingoo 阅读(450) 评论(0) 推荐(0) 编辑
摘要:#include <iostream>#include <list>#include <string>#include <vector>#include <bitset>using namespace std;template <typename Container,typename Object>void change(Container & c,const Object & newValue)//改变新值{ typename Container::ierator itr = c.begin(); whi 阅读全文
posted @ 2012-09-18 18:57 xingoo 阅读(691) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示