随笔分类 - 算法&数据结构
摘要:★ 先说一个通俗的例子 考虑到证书体系的相关知识比较枯燥、晦涩。俺先拿一个通俗的例子来说事儿。 ◇ 普通的介绍信 想必大伙儿都听说过介绍信的例子吧?假设 A 公司的张三先生要到 B 公司去拜访,但是 B 公司的所有人都不认识他,他咋办捏?常用的办法是带公司开的一张介绍信,在信中说:兹有张三先生前往贵
阅读全文
摘要:http://blog.csdn.net/luc9910/article/details/54377626 1. 全概率公式 在讲全概率公式之前,首先要理解什么是“完备事件群”。 我们将满足 BiBj=∅(i≠j)B1+B2+⋯=Ω 这样的一组事件称为一个“完备事件群”。简而言之,就是事件之间两两互
阅读全文
摘要:一、定义问题 外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。外部排序最常用的算法是多路归并排序,即将原文件分解成多个能够一次性装入内存的部分,分别把每一部分调入内存完成排序。然后,对已经
阅读全文
摘要:题目:对2G的数据量进行排序,这是基本要求。 数据:1、每个数据不大于8亿;2、数据类型位int;3、每个数据最多重复一次。 内存:最多用200M的内存进行操作。 我听过很多种类似问题的解法,有的是内存多次利用,有的用到了外存,我觉得这两种做法都不是比较好的思想,太慢。由于这个题目看起来没有对效率进
阅读全文
摘要:为什么选择跳表 目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。 想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树 出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树, 还要参考网上的代码,相当
阅读全文
摘要:https://my.oschina.net/OutOfMemory/blog/807634 前言在文章2PC/3PC到底是啥中介绍了2PC这种一致性协议,从文中了解到2PC更多的被用在了状态一致性上(分布式事务),在数据一致性中很少被使用;而Paxos正是在数据一致性中被广泛使用,在过去十年里,P
阅读全文
摘要:http://blog.jobbole.com/106940/ 题目:实现一个栈,带有出栈(pop),入栈(push),取最小元素(getMin)三个方法。要保证这三个方法的时间复杂度都是O(1)。
阅读全文
摘要:http://blog.jobbole.com/106315/
阅读全文
摘要:fromhttp://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.htmlDijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向...
阅读全文
摘要:1.三线法:三线法见下图:过(x3,y3)和(x4,y4)作(x1,y1)-(x2,y2)的平行线,判断这两条平行线是否在(x1,y1)-(x2,y2)的同一侧,然后过(x1,y1)和(x4,y4)作( x2,y2)-(x3,y3)的平行线,判断...三次都通过了自然在三角形内部.2.面积法。假设三角形的三个顶点分别为A,B,C,测试点为O,若OAB,OAC,OBC的面积之和与三角形ABC的面积相等,那么点在三角形内,否则在三角形外。3.比较长度法.若OA,OB都小于AB && OA,OC都小于AC && OB,OC都小于BC的长度,那么点在三角形内,否则点在三
阅读全文
摘要:第一组 1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢? 2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻? 3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水? 4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问? 5.12...
阅读全文
摘要:#ifndef LINKLIST_H_ #define LINKLIST_H_ struct Node { Node* ptr_; int data_; Node():ptr_(0), data_(0) {} Node(int i):ptr_(0), data_(i) {} }; class Lin
阅读全文
摘要:#include <iostream>using namespace std;typedef struct _List_my{ int index; struct _List_my *next; _List_my(int i):index(i), next(NULL){} _List_my():ne
阅读全文
摘要:// 在ptr为根的二叉搜索树中删除x的结点,若删除成功则新结点通过ptr返回template<class E, class K>bool BST<E, K>::Remove(const K x, BSTNode<E, K>*& ptr){ BSTNode<E, K>* tmp; if(ptr !=
阅读全文
摘要:看数据结构书,看到归并排序,便手动实现其代码,发现普通的两路归并代码是错误的,,,,不晓得原因是啥子。。。。 下表面的代码是R.Sedgewick提出的一个改进的两路归并算法代码,经测试正确无误。 void Merge(int L1[], int L2[], int first, int mid,
阅读全文