梦想破碎是没有声音的,它只是缓慢又沉默地离开了。 by 苏更生

标签:算法

算法

一个故事告诉你比特币的原理及运作机制

一个故事告诉你比特币的原理及运作机制
一篇关于比特币的有意思的文章,分享给大家! 周末花时间看了一些比特币原理相关的资料,虽然不敢说把每个细节都完全搞懂了,不过整体思路和关键部分的主要原理还是比较明白。写一篇文章分享给大家。这篇文章的定位会比较科普,尽量用类比的方法将比特币的基本原理讲出来。这篇文章不会涉及算法和协议...

熊 大 2年前 (2015-03-24) 6345℃ 0评论 14喜欢

数据结构-算法

8大排序算法图文讲解

8大排序算法图文讲解
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 本文将依次介绍上述...

Jay13 3年前 (2014-10-29) 59198℃ 3评论 194喜欢

算法

ZIP压缩算法详细分析及解压实例解释

ZIP压缩算法详细分析及解压实例解释
最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据压缩,两者本质上没啥区别,在数学家看来,都是映射。一方面在进行通信的时候,有必要...

Jay13 3年前 (2014-09-08) 17294℃ 2评论 16喜欢

算法

背包问题九讲

背包问题九讲
目录 第一讲 01背包问题 这是最基本的背包问题,每个物品最多只能放一次。 第二讲 完全背包问题 第二个基本的背包问题模型,每种物品可以放无限多次。 第三讲 多重背包问题 每种物品有一个固定的次数上限。 第四讲 混合三种背包问题 将前面三种简单的问题叠加成较复杂的问题。 第五讲 ...

Jay13 3年前 (2014-08-23) 9765℃ 0评论 6喜欢

算法

位运算及相关面试题汇总

位运算及相关面试题汇总
本文目录: 1)位运算基础 2)使用位运算交换两个整数 3)理解并使用位运算 4)判断字符串是否包含重复字符 5)Bitmap应用 6)布隆过滤器(Bloom Filter)   1.位运算符基础 四个位运算符:与&  或 ||   非 ~   异或^ 设二进制...

Jay13 3年前 (2014-08-17) 6513℃ 4评论 22喜欢

算法

说一说程序员“举一反三”的能力

题图:“私想者” 获得思想的能力,我们称之为智力。解决一个问题,如果你能做到举一反三,那么你就真正获得了解决这一类问题的思想了。 好吧,我们一起来体会一下自己“举一反三”的能力究竟怎么样。 一、从快速排序说起 快速排序可以说是应用最广的一种排序算法。其思想是基于分治模式,将问题...

Jay13 3年前 (2014-08-15) 7821℃ 2评论 18喜欢

面试

盘点那些有趣的IT面试题(下)

盘点那些有趣的IT面试题(下)
1.如果以下三条描述有两条是错的,那么“先有蛋”是对的的概率是多少? 先有鸡 先有蛋 第一条是错的,第二条是对的   2.下列程序的预期结果是输出数组中的元素,但运行结果不正确,请找出出错的地方。 #include<stdio.h...

Jay13 3年前 (2014-08-14) 5596℃ 3评论 15喜欢

数据结构-算法

工程实践中最常用的数据结构与算法

工程实践中最常用的数据结构与算法
本文介绍工程实践中最常用的一些数据结构与算法。(文章中介绍的数据结构与算法由谷歌工程师Arjun Nayini给出) 最常用的算法 1.图搜索算法(BFS,DFS),深度优先搜索尤其重要,因为它能给出很多图的结构信息。 2.排序算法(比较排序和桶排序思想) 3.通用的动态规划算法...

Jay13 3年前 (2014-08-13) 4516℃ 0评论 15喜欢

数据结构-算法

哈希表

基本概念   哈希表(Hash Table)是一种根据关键字直接访问内存存储位置的数据结构。通过哈希表,数据元素的存放位置和数据元素的关键字之间建立起某种对应关系,建立这种对应关系的函数称为哈希函数(如图)。 哈希函数构造方法   哈希表的构造方法是:假设要存储的数据元素个数为...

Jay13 3年前 (2014-07-04) 7300℃ 0评论 7喜欢

谷歌CTCI

19.11 设计一个算法,找到数组中所有和为指定值的整数对

题目 设计一个算法,找到数组中所有和为指定值的整数对。 解答 时间复杂度O(n)的解法 我们可以用一个哈希表或数组或bitmap(后两者要求数组中的整数非负)来保存sum-x的值, 这样我们就只需要遍历数组两次即可找到和为指定值的整数对。这种方法需要O(n) 的辅助空间。如果直接...

Jay13 3年前 (2014-06-22) 5059℃ 0评论 12喜欢

谷歌CTCI

19.8 统计给定单词在一本书中出现的次数

题目 设计一个函数,统计给定单词在一本书中的出现次数。 解答 这道题目和19.2是一个思路。如果只需要查询一次, 那就直接做;如果要多次查询,而且要查询各种不同的单词,那就先预处理一遍, 接下来就只需要用O(1)的时间进行查询。 只查询一次 遍历这本书的每个单词,计算给定单词出现...

Jay13 3年前 (2014-06-22) 3045℃ 1评论 6喜欢

谷歌CTCI

19.7 求最大连续子序列和

题目 给出一个整数数组(包含正数和负数),找到数组中最大的连续子序列,并返回和。 例子: 输入: {2, -8, 3, -2, 4, -10} 输出: 5 (即, {3, -2, 4} ) 解答 经典的面试题目,遍历一遍数组,用变量maxsum保存遍历过程中的最大和, 用变量cu...

Jay13 3年前 (2014-06-22) 5442℃ 1评论 8喜欢

机器学习

基于用户投票的排名算法(一):Delicious和Hacker News

互联网的出现,意味着”信息大爆炸”。   用户担心的,不再是信息太少,而是信息太多。如何从大量信息之中,快速有效地找出最重要的内容,成了互联网的一大核心问题。   各种各样的排名算法,是目前过滤信息的主要手段之一。对信息进行排名,意味着将信息按照重要性依...

Jay13 3年前 (2014-06-19) 2976℃ 0评论 8喜欢

算法导论

必懂KMP算法

很久以前,我一直以来的印象是KMP字符串匹配算法很麻烦,很难懂。直到这篇文章的出现。 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串”BBC ABCDAB ABCDABCDABDE”,我想知道,里面是否包含另一个字符串”ABCDAB...

Jay13 3年前 (2014-06-18) 5344℃ 5评论 19喜欢

算法

PageRank算法简介及Map-Reduce实现

PageRank对网页排名的算法,曾是Google发家致富的法宝。以前虽然有实验过,但理解还是不透彻,这几天又看了一下,这里总结一下PageRank算法的基本原理。 一、什么是pagerank PageRank的Page可是认为是网页,表示网页排名,也可以认为是Larry Pag...

Jay13 3年前 (2014-06-04) 3712℃ 1评论 5喜欢

算法

如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(二)

上一篇文章发出来之后,为了掐死我,大家真是很下工夫啊,有拿给姐姐看的,有拿给妹妹看的,还有拿给女朋友看的,就是为了听到一句“完全看不懂啊”。幸亏我留了个心眼,不然就真的像标题配图那样了。我的文章题目是,如果看了这篇文章你“还”不懂就过来掐死我,潜台词就是在你学了,但是没学明白的情...

Jay13 3年前 (2014-06-04) 3067℃ 0评论 5喜欢

算法

如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(一)

我保证这篇文章和你以前看过的所有文章都不同,这是 12 年还在果壳的时候写的,但是当时没有来得及写完就出国了……于是拖了两年,嗯,我是拖延症患者…… 这篇文章的核心思想就是: 要让读者在不看任何数学公式的情况下理解傅里叶分析。 傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆...

Jay13 3年前 (2014-06-04) 3426℃ 2评论 10喜欢

算法导论

动态规划

动态规划
动态规划通过将原问题分解为子问题,然后通过求解子问题,并组合子问题的解而得到整个问题的解。通常动态规划求解的问题特别适用于具有重复子问题的问题。通过将子问题的解保持在一张表中,避免每次遇到各个子问题时重复计算,从而大大提高计算效率(也是一种典型的空间换时间)。 通过动态规划求解问...

Jay13 3年前 (2014-05-26) 3509℃ 1评论 13喜欢

算法

二分查找算法及其变体

二分查找算法及其变体
二分查找算法 据说10个程序员,有九个写不对二分查找函数。 《编程珠玑》的作者Jon Bentley曾在贝尔实验室做过一个实验,即给一些专业的程序员几个小时的时间,用任何一种语言编写二分查找程序(写出高级伪代码也可以),结果参与编写的一百多人中:90%的程序员写的程序中有bug。...

Jay13 3年前 (2014-05-22) 7423℃ 0评论 4喜欢

算法

程序员必须知道的10大基础实用算法及其讲解

算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner lo...

Jay13 3年前 (2014-05-14) 130247℃ 42评论 142喜欢

算法

我的算法学习之路

原文作者:Lucida 这篇文章讲了什么? 我这些年学习数据结构和算法的总结。 一些不错的算法书籍和教程。 算法的重要性。 初学 第一次接触数据结构是在大二下学期的数据结构课程。然而这门课程并没有让我入门——当时自己正忙于倒卖各种MP3和耳机,对于这些课程根本就不屑一顾——...

Jay13 3年前 (2014-05-05) 10792℃ 10评论 34喜欢

算法

递归算法实例讲解

递归算法实例讲解
题图:递归 在数学与计算机科学中,递归是指在函数的定义中使用函数自身的方法。 递归算法是一种直接或者间接地调用自身算法的过程。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解。 递归算法解决问题的特点: (1) 递归就是在过程或函数里...

Jay13 3年前 (2014-04-09) 74099℃ 6评论 192喜欢

谷歌CTCI

15.5 写SQL查询语句查询成绩排名前10%的学生

题目 有一个简单的数据库,存储学生的成绩信息。尝试设计这个数据库,它会是怎样的? 提供一个SQL查询语句来返回光荣榜学生信息(前10%),按照他们的GPA排序。 解答 在一个简单的数据库中,我们至少需要以下三张表:学生表(Students),课程表(Courses), 及课程登记...

Jay13 3年前 (2014-04-03) 9032℃ 0评论 2喜欢

谷歌CTCI

15.3 什么是反范式?它的优缺点是什么?

题目 什么是反范式?它优缺点是什么? 解答 反范式是通过增加冗余数据或数据分组来提高数据库读性能的过程。在某些情况下, 反范式有助于掩盖关系型数据库软件的低效。关系型的范式数据库即使做过优化, 也常常会带来沉重的访问负载。 数据库的范式设计会存储不同但相关的信息在不同的逻辑表, ...

Jay13 3年前 (2014-04-03) 5088℃ 0评论 5喜欢

谷歌CTCI

15.2 SQL的连接有哪些不同的类型?并解释其异同点

题目 SQL的连接有哪些不同的类型?解释它们的不同点及在什么情况下用哪种连接,为什么? 解答 连接(JOIN)将数据库中的两个或多个表组合起来。为了使用连接, 每个表至少要包含一个相同的字段(属性)。不同的连接类型决定了哪些记录会出现在结果集。 假设我们有以下两张表: 一张表列...

Jay13 3年前 (2014-04-03) 2547℃ 1评论 4喜欢