
算法之道
文章平均质量分 84
「已注销」
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
几种排序算法实现分析
合并排序void merge(int a[],int left,int mid,int right,int b[]){ int i = left; int j = mid +1; int k = left; while(i<=mid&&j<=right) { if(a[i]<a[j]) b[转载 2013-06-30 23:09:11 · 794 阅读 · 0 评论 -
多版本并发控制(MVCC)在分布式系统中的应用
问题 最近项目中遇到了一个分布式系统的并发控制问题。该问题可以抽象为:某分布式系统由一个数据中心D和若干业务处理中心L1,L2 … Ln组成;D本质上是一个key-value存储,它对外提供基于HTTP协议的CRUD操作接口。L的业务逻辑可以抽象为下面3个步骤:read: 根据keySet {k1, … kn}从D获取keyValueSet {k1:v1, … kn:vn}转载 2013-07-16 08:54:50 · 817 阅读 · 0 评论 -
深入浅出交换类排序算法(冒泡排序,快速排序)
1) 冒泡排序冒泡排序在众多排序算法中算比较简单的一个, 基本思想是, 重复的进行整个数列的排序, 一次比较两个元素(两两排序),如果它们顺序不符合就交换,重复这样直到数列没有再需要交换的数为止(结束条件).就好像气泡一样, 轻的气泡会往上漂浮,在不断漂浮的过程中,发生了两两交换过程, 所以叫冒泡排序.其实也可以用生活中的例子理解, 就比如: 在军训排队时, 按个子转载 2013-07-02 20:28:11 · 847 阅读 · 0 评论 -
深入浅出插入类排序算法(直接插入, 折半插入, 希尔排序)
1) 直接插入排序:通俗的生活例子:比如大家在玩牌的时候, 每次从桌面拿到一张牌后, 然后把它放到手里牌合适的位置(这个合适位置的选择,需要将拿到的牌和手中的牌进行比较).假如有5张牌, 牌序为 J, 10, K, Q, A (假设排列在前面的牌先拿到):如图所示, 开始拿到”J”这张牌, 第一张牌肯定是有序的,所以序列为:已排序的系列转载 2013-07-02 20:32:02 · 2300 阅读 · 0 评论 -
深入浅出选择类排序算法(简单选择排序,堆排序)
一.简单选择排序:简单选择排序的基本思想是:一次选定数组中的一个数,记下当前位置并假设它是从当前位置开始后面数中的最小数min=i,从这个数的下一个数开始扫描直到最后一个数,并记录下最小数的位置min,扫描结束后如果min不等于i,说明假设错误,则交换min与i位置上的数。(也即每次从数列中找出一个最小的数放到最前面来,再从剩下的n-1个数中选择一个最小的,不断做下去。通俗转载 2013-07-02 20:13:42 · 857 阅读 · 0 评论 -
计算机科学中最重要的32个算法
奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)做了一个调查,投票选出32个最重要的算法:A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出路径。其中使用了一种启发式的估算,为每个节点估算通过该节点的最佳路径,并以之为各个地点排定次序。算法以得到的次序访问这些节点。因此,A*搜索算法是最佳优先搜索的范例转载 2013-07-22 13:06:18 · 942 阅读 · 0 评论 -
约瑟夫问题求解
约瑟夫问题求解:版本一://数组实现方式,扩展名为.cpp Code: #include #include int *Joseph(int n){ int *p; p=new int[n]; for(int i=0;i p[i]=i+1;原创 2010-09-28 09:18:00 · 898 阅读 · 2 评论