码迷,mamicode.com
首页 >  
搜索关键字:算法实现    ( 1797个结果
TCP的带宽估计和丢包恢复
一、带宽估计TCP的带宽估计主要通过拥塞控制算法实现,用到两个变量:1、cwnd TCP对当前链路可用带宽的估计2、ssthreash 拥塞控制算法“假想”出来的可用带宽值二、丢包恢复丢包有三种情况:1、连续收到三个重复的ack2、sack和fack3、RTO超时,标记链路中所有数据包丢失
分类:其他好文   时间:2015-03-30 20:24:12    阅读次数:138
Java集合中二分查找算法实现
Java集合中二分查找算法实现 Arrays.binarySearch实现了对有序数组特定区间的二分查找,虽然我们觉得很简答,但是阅读源码的确能看到实现这些库的优秀技巧,总是在追求完美和高效。 值得学习的地方有: (1)边界检查; (2)求中位数的时候使用位移操作,而不是 x/2; (3)如果查找的元素不在数组中,通过返回值昭示了应该插入的位置,而不是直接返回-1;...
分类:编程语言   时间:2015-03-30 18:50:14    阅读次数:165
Redis源码中的CRC校验码(crc16、crc64)原理浅析
在阅读Redis源码的时候,看到了两个文件:crc16.c、crc64.c。下面我抛砖引玉,简析一下原理。 CRC即循环冗余校验码,是信息系统中一种常见的检错码。大学课程中的“计算机网络”、“计算机组成”等课程中都有提及。我们可能都了解它的数学原理,在试卷上手工计算一个CRC校验码,并不是难事。但是计算机不是人,现实世界中的数学原理需要转化为计算机算法才能实现目的。实际上作为计算机专业背景人并不会经常使用或接触到CRC的计算机算法实现的原理,通常是电子学科背景的人士会接触的比较多点。计算机当...
分类:其他好文   时间:2015-03-29 22:13:31    阅读次数:2659
KMP算法字符串匹配
对于暴力搜索法,当搜索词对应的字符与字符串中的字符不匹配时。将搜索词整个后移一位,再从头逐个比较。这样做虽然可行,但是效率很差,因为你要把”搜索位置”移到已经比较过的位置,重比一遍。应用KMP算法之后,则有: 移动位数 = 已匹配的字符数 - 对应的部分匹配值 “部分匹配值”就是”前缀”和”后缀”的最长的共有元素的长度。KMP算法实现代码如下:void prefixFun(char *pat...
分类:编程语言   时间:2015-03-29 20:59:34    阅读次数:259
O(n*lgn)时间复杂度的逆序对统计算法实现思想
逆序对定义:设A[1..n]是一个包含n个不同数的数组。如果在i A[j],则(i,j)就称为A中的一个逆序对(inversion)。 现给出一个算法,其可以用O(n*lgn)的最坏情况运行时间,确定n个元素的任何排列中逆序对的数量。 简单的算法实现思想:我们可以单纯的通过从前往后的逐一比对来确定逆序对的数量,虽然实现简单,但这样一来时间复杂度将会上升为O(n*n),不符合我们的要求。 ...
分类:编程语言   时间:2015-03-28 17:16:05    阅读次数:355
算法学习 - 欧几里得算法(辗转相除法)(c++实现)
欧几里得算法欧几里得算法也叫辗转相除法,是求两个整数最大公约数的算法。当然也可以求最小公倍数。算法实现其实算法的实现原理就是,有整数a b两个,每次求的一个数字r = a % b,然后把b放到a的位置,把r放到b的位置,递归调用。就是gcd(a, b) { return gcd(b, a%b); }这个样子的。结束条件是当 a%b == 0的时候停止。最大公约数// // main.cpp //...
分类:编程语言   时间:2015-03-28 01:13:58    阅读次数:243
最优雅的二分查找
今天复习以前的代码,突然发现插入排序用的二分查找算法实现得很别扭,于是试试重写一个,没想到相当顺利,几分钟就写好并测试通过了:static int BinarySearch(int[] array, int value, int start, int end) { if(start ==...
分类:其他好文   时间:2015-03-21 18:32:27    阅读次数:99
突现灵感想出较新简单算法--实现求一数组最大子数组的和
一、题目: 返回一个整数数组中最大子数组的和。 要求: 1.输入一个整形数组,数组里有正数也有负数。 2.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 3.求所有子数组的和的最大值。要求时间复杂度为O(n)。二、设计思路 首先将每一点看成辐射源,没点只能向右辐射找出...
分类:编程语言   时间:2015-03-20 20:26:01    阅读次数:197
KMP算法番外篇
KMP算法实现字符串的模式匹配的时间复杂度比朴素的模式匹配好很多,但是它时间效率的提高是有前提的,那就是:模式串的重复率很高,不然它的效率也不会凸显出来。在实际的应用中,KMP算法不算是使用率很高的一个算法,但是它的核心的那点东西却是使用率很高的,那就是next前缀数组的求解思路。在这次笔记中就单独...
分类:编程语言   时间:2015-03-20 18:01:54    阅读次数:180
Spark Standalone Mode 单机启动Spark -- 分布式计算系统spark学习(一)
spark是个啥?Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发。Spark和Hadoop有什么不同呢?Spark是基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存...
分类:其他好文   时间:2015-03-20 12:49:49    阅读次数:306
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!