
算法讲解
文章平均质量分 76
朱户凌晨起-悠然见南山
我是个菜鸟
展开
-
排序算法讲解(一)
排序算法无论是在平时生活中还是在ACM-ICPC中都比较常用,也很重要。毕竟,在真正的数据处理过程中如果提前对数据进行有效而良好的排序,那么数据处理起来将会变得比较简洁。这里给大家介绍几个常用的排序算法。一、插入排序:插入排序的过程有一些类似于打扑克。相信绝大多数打过扑克的朋友都有这样的习惯,每抓一张牌,就要结合手中已有的牌进行分门别类并且按照一定的顺序进行排列。这样,在真正开始打牌的时候原创 2016-07-22 11:37:26 · 546 阅读 · 0 评论 -
排序算法讲解(二)
三、快速排序快速排序是目前在实际工作当中使用频率最高、效率也最好的一种排序算法。它的主要思想是:有待排序数组S={d1,d2,d3,……,dn},从中挑选一个元素dx最为一个基准,将剩余的元素中小于或者等于dx的元素全都移到dx的前面,将大于dx的元素全部移到dx的后面。这样S课分为两个子集S1和S2,其中S1中的元素全部小于等于dx,S2中的元素全部大于dx。此时一趟排序完成。再遵循以上的思原创 2016-07-23 11:02:43 · 483 阅读 · 0 评论 -
排序算法讲解(三)
五、希尔排序希尔排序我们需要借助变量gapk来实现(gap是变量名,k是下脚标),这个排序算法主要是通过比较相距gapk间隔的元素值的大小来进行排序,并且在一组数据当中,所有相距gapk的元素都被排序。希尔排序的思路是:确定一个元素间隔gap,将参加排序的元素从第一个元素开始按照这个间隔依次分成多个子序列,分别将所有位置的相隔gap的元素看成一个子序列。例如对于一组数据{2,9,3,7,1原创 2016-07-25 22:00:41 · 314 阅读 · 0 评论 -
图的深度优先搜索/Depth-first search/C++
出处:http://www.cnblogs.com/yanlingyin/ 点击打开链接图是一种常见的数据结构,深度优先和广度优先搜索都是常用的算法,这篇博文先介绍深度优先搜索。和往常一样的,我会用朴实的语言来介绍它,所以只要认真看一定能理解。开始会先介绍下图的表示方法,如果已经掌握了大可跳过。图的表示要表示一个图G(V,E)有两种常见的表示方法,邻接矩阵和邻接表。这转载 2016-08-06 11:51:15 · 596 阅读 · 0 评论 -
(扩展)欧几里德得算法
一、先说一说欧几里得算法欧几里德算法又称为辗转相除法,用于求两个整数a、b的最大公约数。算法描述:假设a = k*b + r,其中a,b,k,r都为整数,则a和b的最大公约数与b,r的最大公约数相等,即:gcd(a, b) = gcd(b, a%b)证明:设 a = k*b + r, 则 r = a mod b;设 d是a,b的一个公约数,那么肯定有 d|a , d|原创 2016-08-08 11:29:43 · 401 阅读 · 0 评论