随笔分类 -  数学与算法

摘要:一个100G的文件,内存只有4G,对其进行全排序,如何用普通的java程序编写处理我们一般说的排序算法是内部排序,指的是可以将所有数据一次性的载入内存当中,然后进行排序。但是,当要排序的数据量相当大的时候,无法将全部的数据加载到内存中,这时就需要采用外部排序的方法,采用分而治之的思想,将大的数据文件 阅读全文
posted @ 2022-03-07 09:31 PKICA 阅读(75) 评论(0) 推荐(0) 编辑
摘要:这个算法的意思是,对任何一个数 n,n & ( n − 1 ) 的结果是n的比特位最右端的1变为0的结果。例如,n = 12 , n − 1 = 11 , 11 & 12 = 8 n=12,n-1=11,11\&12=8n=12,n−1=11,11&12=8 n & (~n + 1)提取出整数n最后 阅读全文
posted @ 2021-06-24 10:27 PKICA 阅读(43) 评论(0) 推荐(0) 编辑
摘要:一、什么是编码解码 编码:利用特定的算法,对原始内容进行处理,生成运算后的内容,形成另一种数据的表现形式,可以根据算法,再还原回来,这种操作称之为编码。 解码:利用编码使用的算法的逆运算,对经过编码的数据进行处理,还原出原始数据,这种操作称之为解码。 二、什么是Base64编码算法 可以将任意的字节 阅读全文
posted @ 2019-03-29 00:34 PKICA 阅读(2278) 评论(0) 推荐(1) 编辑
摘要:Prim算法(使用visited数组实现) Prim算法求最小生成树的时候和边数无关,和顶点树有关,所以适合求解稠密网的最小生成树。 Prim算法的步骤包括: 1. 将一个图分为两部分,一部分归为点集U,一部分归为点集V,U的初始集合为{V1},V的初始集合为{ALL-V1}。 2. 针对U开始找U 阅读全文
posted @ 2018-09-27 22:24 PKICA 阅读(781) 评论(0) 推荐(0) 编辑
摘要:有限状态机(Finite-state machine)又称有限状态自动机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。常用与:正则表达式引擎,编译器的词法和语法分析,游戏设计,网络协议,企业应用中等方面。 状态机可归纳为4个要素,即现态、条件、动作、次态。这样的归纳,主要是出于对 阅读全文
posted @ 2018-09-09 14:32 PKICA 阅读(1018) 评论(0) 推荐(2) 编辑
摘要:据 Drew 所知最短路经算法现在重要的应用有计算机网络路由算法,机器人探路,交通路线导航,人工智能,游戏设计等等。美国火星探测器核心的寻路算法就是采用的D*(D Star)算法。 最短路经计算分静态最短路计算和动态最短路计算。 静态路径最短路径算法是外界环境不变,计算最短路径。主要有Dijkstr 阅读全文
posted @ 2018-09-08 21:57 PKICA 阅读(26915) 评论(3) 推荐(1) 编辑
摘要:先了解一下什么是A*算法。 A星算法核心公式: 估价函数: 估价函数f(n)被定义为从初始节点S0出发,约束经过节点n到达目标节点Sg的所有路径中最小路径代价的估计值。它的一般形式为: f(n)=g(n)+h(n) 其中,g(n)是从初始节点S0到节点n的实际代价;h(n)是从节点n到目标节点Sg的 阅读全文
posted @ 2018-09-07 09:01 PKICA 阅读(2608) 评论(0) 推荐(0) 编辑
摘要:1971年,斯蒂芬·库克(Stephen A. Cook)发表了 The Complexity of Theorem Proving Procedures(定理证明过程的复杂性)。把以多项式时间解决为衡量标准的问题归成三大类,即NP(nondeterministic poly-nomial),NP完 阅读全文
posted @ 2018-09-03 20:24 PKICA 阅读(436) 评论(0) 推荐(0) 编辑
摘要:1. 欧拉公式的发现 1740年10月8日,欧拉(Leonhard Euler ,1707~1783)写了一封信给他的老师约翰·伯努利(Johann Bernoulli,1667 ~ 1748),信中他提到一个发现,微分方程: 微分方程的解可以用两种方式给出,即: 微分方程的两个解 把两个解带入方程 阅读全文
posted @ 2018-08-08 06:56 PKICA 阅读(4876) 评论(0) 推荐(2) 编辑
摘要:并查集(Union-Find) 应用举例 阅读全文
posted @ 2018-07-24 08:57 PKICA 阅读(125) 评论(0) 推荐(0) 编辑
摘要:堆是具有下列性质的完全二叉树: 每个结点的值L[i]L[i]都大于或等于其左孩子L[left(i)]L[left(i)]和右孩子L[right(i)]L[right(i)]结点的值,称为大顶堆(最大堆); 每个结点的值L[i]L[i]都小于或等于其左孩子L[left(i)]L[left(i)]和右孩 阅读全文
posted @ 2018-07-22 22:22 PKICA 阅读(167) 评论(0) 推荐(0) 编辑
摘要:快速排序(Quicksort),又称划分交换排序(partition-exchange sort),是对冒泡排序算法的改进,最早由东尼·霍尔提出。在平均状况下,排序n个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n lo 阅读全文
posted @ 2018-07-22 21:33 PKICA 阅读(222) 评论(0) 推荐(0) 编辑
摘要:归并排序:归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为O(n log n)。1945年由约翰·冯·诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。 该算法是采用 阅读全文
posted @ 2018-07-22 21:22 PKICA 阅读(193) 评论(0) 推荐(0) 编辑
摘要:next: nextval: 阅读全文
posted @ 2018-07-05 07:27 PKICA 阅读(1767) 评论(0) 推荐(0) 编辑
摘要:Knuth-Morris-Pratt三位学者发现的. 2. 模式值数组与最长首尾匹配 可能有读者因上一节的匹配太缭乱而直接跳到这里,那笔者再重复一遍已经得到的结论:我们需要对字符串N进行预处理,得到一个叫做模式值数组的东西。那么我们怎样处理字符串N呢? 这个东西如果我们能思考出来,那我们就可以在KM 阅读全文
posted @ 2018-07-04 07:40 PKICA 阅读(200) 评论(0) 推荐(0) 编辑
摘要:问题描述: 有一个梵塔,塔内有三个座A、B、C,A座上有诺干个盘子,盘子大小不等,大的在下,小的在上(如图)。 把这些个盘子从A座移到C座,中间可以借用B座但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘 子始终保持大盘在下,小盘在上。 描述简化:把A柱上的n个盘子移动到C柱,其中可以借用 阅读全文
posted @ 2017-06-25 15:45 PKICA 阅读(248) 评论(0) 推荐(0) 编辑
摘要:素数筛选法比较有名的,较常用的是Sieve of Eratosthenes,为古希腊数学家埃拉托色尼(Eratosthenes 274B.C.~194B.C.)提出的一种筛选法。详细步骤及图示讲解,还有java与c++版源代码. 素数在信息安全中有着重要应用. 阅读全文
posted @ 2017-04-24 16:52 PKICA 阅读(314) 评论(0) 推荐(0) 编辑
摘要:2017-04-22 什么是贪心算法呢?所谓贪心算法是指,在对问题求解时,总是做出在当前看来最好的选择。也就是说,不从整体最优解出发来考虑,它所做出的仅是在某种意义上的局部最优解。 贪心策略适用的前提是:局部最优策略能导致产生全局最优解。 实际上,贪心算法适用的情况很少。选择的贪心策略必须具备无后效 阅读全文
posted @ 2017-04-22 15:38 PKICA 阅读(239) 评论(0) 推荐(0) 编辑
摘要:计算机算法设计与分析 第3版》 王晓东 eg. from geeksforgeeks 阅读全文
posted @ 2017-04-06 22:00 PKICA 阅读(250) 评论(0) 推荐(0) 编辑
摘要:用递归的方案实现: 完整代码 1 #include <iostream> 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <string.h> 5 6 using namespace std; 7 8 /* 二叉树存储结构定义*/ 9 ty 阅读全文
posted @ 2016-09-19 12:21 PKICA 阅读(2661) 评论(0) 推荐(0) 编辑

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