算法
Ramond.Z
欢迎访问个人网站https://ramondz.cn
展开
-
几种压缩算法实现原理详解
gzip 、zlib以及图形格式png,使用的压缩算法都是deflate算法。从gzip的源码中,我们了解到了defalte算法的原理和实现。我阅读的gzip版本为 gzip-1.2.4。下面我们将要对deflate算法做一个分析和说明。首先简单介绍一下基本原理,然后详细的介绍实现。1 gzip 所使用压缩算法的基本原理gzip 对于要压缩的文件,首先使用LZ77算法的一个变种进行压缩,对...转载 2018-11-05 23:56:26 · 1275 阅读 · 0 评论 -
算法思考-最大子序列和
题目:对给定的某序列,给出方案求 子序列和 最大的子序列并进行评价一共有四种方法:求出以每一个元素为起点的每一个子序列的和,再进行比较,找出其中的最大值;求出以每一个元素为起点的最大子序列的和,再进行比较,找出其中的最大值;采用分治法,利用递归进行求解;利用动态规划,遍历序列,实时更新最大子序列和。方法一时间复杂度为O(N3),方法二时间复杂度为O(N2),方法三时间...原创 2019-02-27 17:51:45 · 239 阅读 · 0 评论 -
算法思考-topk问题堆排序、快速排序比较
题目:分析求解topk(big)问题时 堆排序 和 快速排序 的使用场景快速排序求解 这种算法利用了快速排序的主要思想:每次调用快速排序的partition函数后将会得出一个数n的最终位置,比较n及其右边所有数的总个数与目标个数k若大于k,则对数n右边的数构成的数组调用partition函数;若等于k,则说明n及其右边的数就是我们想要得...原创 2019-02-27 22:26:44 · 1620 阅读 · 0 评论 -
算法思考-求最大公约数和最小公倍数
题目:求两数的最大公约数和最小公倍数关键在于求最大公约数,求出最大公约数后就可以算出最小公倍数方法一 简单的暴力寻找:设p为两数m,n中的较小数,设置死循环:若p同时整除m和n,则p为m和n的最大公约数,退出循环;否则p-1,返回步骤1C++代码:#include <iostream>using name...原创 2019-03-05 23:16:23 · 300 阅读 · 0 评论 -
算法思考-GooglePageRank算法
算法思考-GooglePageRank算法原创 2019-03-05 23:17:30 · 281 阅读 · 0 评论 -
算法思考-求乱序序列的中位数
题目:求乱序序列的中位数方法一 最容易想到的解法,先将序列排序,再求出中位数Python代码:def get_median_1(l): l = quick_sort(l) # 这里没有使用自带的sorted函数是为了之后直观地比较两种算法的区别 if len(l)%2 == 0: return (l[int(len...原创 2019-03-20 01:41:24 · 1753 阅读 · 0 评论