分类目录: 算法数据结构

15道使用频率极高的基础算法题

via hlxs
15道常见的基础算法题:
1、合并排序,将两个已经排序的数组合并成一个数组,其中一个数组能容下两个数组的所有元素;
2、合并两个已经排序的单链表;
3、倒序打印一个单链表;

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.58- 19票) Loading ... Loading ... | 同时归档在:C/C++, 语言基础 | 标签: , |

Dynamo和Cassandra海量存储基础

提到这两个系统,他们在核心思路上是非常类似的,但有一些细节性的东西又有所偏重,在分布式系统中也算是独树一帜了,很有代表性的一个系列,这些不一致的地方,最明显的地方就在于一致性上。可见,哪怕是从追求简单为上的工程化实现来说,各种不同的方式实现一致性也都有很大的不同,不过他们也有一些共性和一些独树一帜的概念,下面来做一下分别解说。

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.91- 11票) Loading ... Loading ... | 同时归档在:架构设计 | 标签: , , , , |

Google Spanner 全球分布式数据库

原文地址:Spanner: Google’s Globally-Distributed Database 
中文翻译版下载:Google Spanner 中文版
PPT演示文档:spanner-osdi2012.pptx

讲解视频:

| 1 分2 分3 分4 分5 分 (4.75- 12票) Loading ... Loading ... | 同时归档在:云计算/云存储, 数据库, 架构设计 | 标签: , , , |

公钥私钥加密解密数字证书数字签名详解

决心花一些时间,将这些概念和使用的过程彻底弄清楚。最先找到的文章是:数字签名是什么?(阮一峰博客),读了一遍,又找了一些资料,终于把这些概念弄清楚了,这里整理记录一下。

首先明确几个基本概念:

1、密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.75- 20票) Loading ... Loading ... | 同时归档在:移动互联 | 标签: , , , , , , , , |

深入分析Volatile的实现原理

引言

在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。

它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上Inter处理器是如何实现Volatile的,通过深入分析能帮助我们正确的使用Volatile变量。

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.33- 9票) Loading ... Loading ... | 同时归档在:Java, 多线程编程 | 标签: , , |

写Java也得了解CPU缓存

CPU,一般认为写C/C++的才需要了解,写高级语言的(Java/C#/pathon…)并不需要了解那么底层的东西。我一开始也是这么想的,但直到碰到LMAX的Disruptor,以及马丁的博文,才发现写Java的,更加不能忽视CPU。经过一段时间的阅读,希望总结一下自己的阅读后的感悟。本文主要谈谈CPU缓存对Java编程的影响,不涉及具体CPU缓存的机制和实现。

现代CPU的缓存结构一般分三层,L1,L2和L3。如下图所示:

CPU三级缓存示意图

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.14- 7票) Loading ... Loading ... | 同时归档在:Java, 多线程编程 | 标签: , |

如何使用1M的内存排序100万个8位数

今天看到这篇文章,颇为震撼,感叹算法之“神通”。借助于合适的算法可以完成看似不可能的事情。

最早这个问题是在Stack Overflow网站上面给出的(Sorting numbers in RAM):

Sorting numbers in RAM 

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.00- 5票) Loading ... Loading ... | 同时归档在:奇趣见闻 | 标签: |

[转] 一个经典编程面试题的“隐退”

本文由 伯乐在线王伯 翻译自 The Noisy Channel

面试程序员很困难。Jeff Atwood 抱怨找一个会写代码的候选人是如此艰难。在技术媒体发布的那些“最佳”面试题中,很少有能让我提起兴趣的——尽管我很喜欢IKEA的这个面试题。Codility和 Interview Street这样的创业公司从这个具有挑战性的课题中看到了机会。与此同时,Diego Basch 呼吁我们停止逼迫求职者进行白板编程。

阅读全文 »

| 1 分2 分3 分4 分5 分 (4.00- 6票) Loading ... Loading ... | 同时归档在:职业发展 | 标签: , , , |

云存储中的HTTP鉴权算法分析

基于Base64编码的HTTP Basic Authentication由于安全问题,已经不再广泛使用了。在云存储中,数据的安全性一直被广泛关注。亚马逊的AWS S3和Openstack Swift分别采取了不同的算法来对每一个HTTP请求进行鉴权。这里想对二者的鉴权过程作简单分析和总结。

一、AWS S3的HTTP请求鉴权流程

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 9票) Loading ... Loading ... | 同时归档在:Amazon S3, Swift, 云计算/云存储, 存储技术 | 标签: , , , , , , , |

基于C语言的hash table实现进程内缓存

最近遇到一个问题需要做本地缓存,首先想到就是hash表。如果是java,太easy了。C语言就是需要不停的造轮子,实在不想写这个面试题样的东西了,求助于万能的Google了。找到一个不错的hashtable开源实现:http://troydhanson.github.io/uthash/,BSD的许可,赞。也找到了一篇文章介绍详细的用法:http://blog.csdn.net/hongqun/article/details/6103275

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 9票) Loading ... Loading ... | 同时归档在:C/C++, 语言基础 | 标签: , , |
返回顶部