链表的介绍:链表可以说是一种最为基础的数据结构。在维护集合数据的时候拥有很大的帮助,尤其是在增,删上拥有很大的效率今天总结一下曾经学习的链表。
在ios的开发中,掌握一些常用的算法可以帮助我们更加有效率的开发。
链表的总类:
单链表
双向链表
循环链表
今天先来讲述下单链表:元素之间由一个单独的指针链接。这种结构的链表允许从第一个元素开始遍历到最后一个元素。各元素之间通过一个指针连接起来而组成。...
分类:
编程语言 时间:
2015-08-08 18:20:55
阅读次数:
252
1、全排列的非去重递归算法
算法思路:全排列可以看做固定前i位,对第i+1位之后的再进行全排列,比如固定第一位,后面跟着n-1位的全排列。那么解决n-1位元素的全排列就能解决n位元素的全排列了,这样的设计很容易就能用递归实现。
附代码段:
void permutation1(char* str,int sbegin,int send) //全排列的非去重递归算法
{
if(...
分类:
编程语言 时间:
2015-08-08 16:36:09
阅读次数:
124
对于最短路径问题,这里介绍一种O(N^2)的求解方法。
对于求最短路径的问题一般都会给出一幅图,或者边与边的关系。如上图。假设我们起点是A,我们要求到F的最短距离,我们会怎么做?
首先,因为A是起点,所以我们把对于每个点都有个参数,相对于A的距离,默认除了A到A为0,其他都是无穷大。
从起点A开始,我们更新与A相连通的点到A的距离,并把A点标记。如图:
我们遍历一次所有点与A的距...
分类:
编程语言 时间:
2015-08-06 17:02:23
阅读次数:
191
提升树是以决策树为基分类器的提升方法,通常使用CART树。针对不同问题的提升树学习算法,主要区别在于使用的损失函数不同。1)分类问题:指数损失函数。可以使用CART分类树作为AdaBoost的基分类器,此时为分类提升树。2)回归问题:平方误差损失函数。3)决策问题:一般损失函数。1、提升树算法提升树...
分类:
编程语言 时间:
2015-07-31 21:44:07
阅读次数:
371
地址:http://blog.csdn.net/z287438743z/article/details/8132806RMQ(Range Minimum/Maximum Query)问题就是求区间最值问题。这里要仔细分析的是ST算法,它可以做到O(nlogn)的预处理,O(1)回答每个询问。网上看了...
分类:
编程语言 时间:
2015-07-30 11:10:53
阅读次数:
155
1. 桶排序介绍 桶排序(Bucket sort)是一种基于计数的排序算法,工作的原理是将数据分到有限数量的桶子里,然后每个桶再分别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)。当要被排序的数据内的数值是均匀分配的时候,桶排序时间复杂度为Θ(n)。桶排序不同于快速排序,并不是...
分类:
编程语言 时间:
2015-07-23 23:24:36
阅读次数:
213
这种由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现的改进的模式匹配算法简称为KMP算法。大概学过信息学的都知道,是个比较难理解的算法,今天特把它搞个彻彻底底明明白白。注意到这是一个改进的算法,所以有必要把原来的模式匹配算法拿出来,其实理解的关键就在这里,一般的匹配算法:int...
分类:
编程语言 时间:
2015-07-22 22:11:42
阅读次数:
121
http://yidianzixun.com/n/09vv1FRK?s=1完全摘抄自网页1 集体智慧和协同过滤1.1 什么是集体智慧(社会计算)?集体智慧 (Collective Intelligence) 并不是Web2.0时代特有的,只是在 Web2.0 时代,大家在Web应用中利用集体智慧构建...
分类:
编程语言 时间:
2015-07-15 06:32:28
阅读次数:
190
推荐系统中最常用的算法叫做协同过滤(Collaborative Filtering),协同过滤属于社会计算的一种。协同过滤常常被用于分辨某位特定顾客可能感兴趣的东西,这些结论来自于对其他相似顾客对哪些产品感兴趣的分析。协同过滤以其出色的速度和健壮性,在全球互联网领域炙手可热。本文详细地剖析了协同过滤...
分类:
编程语言 时间:
2015-07-12 21:43:21
阅读次数:
262
图像的泊松(Poisson)编辑、泊松融合完全详解(2)——从物理模型跨入图像模型以及算法详解...
分类:
其他好文 时间:
2015-07-05 15:03:17
阅读次数:
476