快速排序算法是对冒泡算法的改进。所以我们首先来简单的谈谈冒泡算法。 1.冒泡算法 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重…
数据结构基础-栈和队列
栈的理论描述 栈是一个有序线性表,只能在表的一端(成为栈顶,top)执行插入和删除操作。最后插入的元素将第一个被删除。所以栈也称为后进先出(Last In First Out)或先进后出(First In Last Ou…
百万富翁问题的一个简单解释
两个百万富翁都想比较到底谁更富有,但是有都不想让别人知道自己有多少钱。在没有可信的第三方的情况下如何进行? 这个问题就是著名的姚式百万富翁问题。姚式,即大名鼎鼎的姚期智,我国唯一一个图灵奖获得者,此问题开创了安全多方计算…
4 数据分析的开胃菜:数据清理
大数据,从小笔记开始 数据清理是很有必要的,特别是大数据年代。目前我们仅有5%的数据经过分析,而且随着数据总量越来越大,越来越多的数据需要我们去筛选、甄别和处理。 数据清理有三大点, 第一点,就是加强数据的可信度。 * …
BZOJ-2242: [SDOI2011]计算器(快速幂+拓展欧几里德+Baby Step Giant Step)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2242 第一个操作,直接快速幂即可 第二个操作,拆了之后拓展欧几里德,然后调调看有没有合适的解 第三个操作,Baby…
图论(7):图的遍历 - 广度优先和深度优先算法
定义 从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次,这个访问的过程叫做图的遍历(Traversing Graph)。且图的遍历算法是一个比较基础的算法,前面我们介绍的有向无环图的依赖排序(拓扑排序)、关…
leecode刷题(3)-- 旋转数组
leecode刷题(3)– 旋转数组 旋转数组 给定一个数组,将数组中的元素向右移动 K 个位置,其中 K 是非负数。 示例: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1…
数据结构 图之关键路径
关键路径 简单有向图.png 网络 AOV网络:有向图,用顶点表示活动,用弧表示活动的先后顺序 AOE网络:有向图,用顶点表示事件,用弧表示活动,用权值表示活动消耗时间 名词解释 活动:业务逻辑中的行为,用边表示 事件:…
reactjs自制Monkey语言编译器:解析组合表达式,if..else语句块和间套函数调用
我们的计算机教育时常流于肤浅,在面对难度较大的基础理论时,总是喜欢侃侃而谈,说起来头头是道,看起似乎很牛逼的样子,但本质上却是大而无当,空洞无物。任何上过大学,专业是计算机的同学或许能深有体会,像操作系统,编译原理,计算…
基础排序算法总结(七种排序算法C代码)
排序是最基础的算法,从排序的对象来说主要分为内部排序和外部排序。内部排序主要是针对内存中的数据进行排序,外部排序针对外存如硬盘、光盘中的数据进行排序。内部排序按工作方式主要分为:插入排序(直接插入排序、希尔排序)、选择排…
二叉树的分层遍历
给定一棵二叉树,要求从上到下从左到右分层输出该二叉树的节点值。 bitree.png 一、递归法 二叉树本身就带有递归属性,通常我们可以用递归方法解决。假设要访问第k层节点,那么其实可以转换成分别访问“以该二叉树根节点的…
带万能牌的麻将和牌算法
该算法通过计算需要的万能牌个数,和已经拥有的万能牌个数对比来判断是否胡牌,算法通用,且效率高,计算胡牌算法每秒钟可以运行三百万次以上。以下是算法的具体内容。 1. 所有合法牌: 0x01 0x02 0x03 0x04 0…