随笔分类 -  算法学习笔记

1 2 3 下一页
算法学习笔记
Crp(customizable route planning) 算法介绍
摘要:作者 crp 算法由微软硅谷研究院三名工程师于2013年提出。 设计目标 应用于大陆级别的实际路网数据 支持任意类型metric(可以理解为cost function) 响应时间满足实时查询的需求 快速的路况更新以及定制化metric更新 主要思想 实际路网由拓扑结构和metric属性两部分组成。路 阅读全文
posted @ 2021-09-29 14:42 知识天地 阅读(1455) 评论(0) 推荐(0) 编辑
几个源码下载的网站
摘要:https://www.codeproject.com/ http://www.pudn.com/ https://sourceforge.net https://developers.google.com/ http://www.csdn.net/ 阅读全文
posted @ 2017-03-06 15:14 知识天地 阅读(492) 评论(0) 推荐(0) 编辑
点到线段的距离计算方法
摘要:如何计算点到线段的最近距离 算法原理图在二维/三维图形学系统当中,线段的拾取是一个经常使用的功能如何根据鼠标点来判断线段是否被选择了,最主要的方法之一是通过点到线段的最小距离来判定的无论二维还是三维情况下,使用点到直线的距离公式似乎是最直接的选择但是不要忘记点到直线公式计算的是点和直线之间的关系,而不是点和线段之间的关系需要额外的判断,点在线段上的投影点是否位于线段内部,是才可以采用点到直线的公式,否则就不能算法如下 class Pointfloat Distance(Point p1, Point p2); // 返回两点之间的距离float Dista... 阅读全文
posted @ 2013-12-26 09:38 知识天地 阅读(5183) 评论(0) 推荐(0) 编辑
利用海伦公式求点到线段距离的算法
摘要:点到直线的距离可以直接做垂线求取,但线段是有首尾点的,若要求距离则要考虑首尾点。点和线段的关系大致可以有下面几种doubleGetPointDistance(CPointp1,CPointp2){returnsqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));}floatGetNearestDistance(CPointPA,CPointPB,CPointP3){//----------图2-------------------- floata,b,c;a=GetPointDistance(PB,P3);if(a=b*b+c*c)//-- 阅读全文
posted @ 2013-12-26 09:35 知识天地 阅读(1220) 评论(0) 推荐(0) 编辑
道格拉斯—普克(Douglas一Peukcer)节点抽稀算法
摘要:Douglas一Peukcer算法由D.Douglas和T.Peueker于1973年提出,简称D一P算法,是眼下公认的线状要素化简经典算法。现有的线化简算法中,有相当一部分都是在该算法基础上进行改进产生的。它的长处是具有平移和旋转不变性,给定曲线与阂值后,抽样结果一定。本章线化简重点解说该算法。算法的基本思路是:对每一条曲线的首末点虚连一条直线,求所有点与直线的距离,并找出最大距离值dmax ,用dmax与限差D相比:若dmax <D,这条曲线上的中间点所有舍去;若dmax ≥D,保留dmax 相应的坐标点,并以该点为界,把曲线分为两部分,对这两部分反复使用该方法。算法的具体过程如下: 阅读全文
posted @ 2013-11-21 18:32 知识天地 阅读(6172) 评论(0) 推荐(0) 编辑
统一横轴墨卡托投影(UTM)
摘要:UTM 坐标系统使用基于网格的方法表示坐标。UTM 系统将地球分为 60 个区,每一个区基于横轴墨卡托投影。画图法中的地图投影方法能够在平面中表示一个两维的曲面,比如一个标准地图。图 1 展示了一个横轴墨卡托投影:图 1. 横轴墨卡托投影 UTM 经度区范围为 1 到 60;当中 58 个区的东西跨度为 6°。经度区涵盖了地球中纬度范围从 80°S 到 84°N 之间的全部区域。 一共同拥有 20 个 UTM 纬度区,每一个区的南北跨度为 8°;使用字母 C 到 X 标识(当中沒有字母 I 和 O)。A、B、Y、Z 区不在系统范围以内;它们覆盖了南极和北 阅读全文
posted @ 2013-11-18 09:48 知识天地 阅读(9558) 评论(0) 推荐(0) 编辑
二维,三维坐标旋转算法(公式)
摘要:本文是有关二维,三维坐标旋转算法笔记。1.二维坐标旋转。二维坐标旋转公式图下:void Rotate2(double x1, double y1, double alpha, double& x2, double& y2){ x2 = x1 * cos(alpha) - y1 * sin(alpha); y2 = x1 * sin(alpha) + y1 * cos(alpha);}2.三维坐标旋转在处理三维坐标旋转时,使用标准的数学公式是沒有问题的。但是把二维坐标旋转调用三次,也能够实现三维坐标的旋转,而且有易读易懂,処理速度快的长处。void Rotate3(double 阅读全文
posted @ 2013-11-14 11:32 知识天地 阅读(7878) 评论(0) 推荐(0) 编辑
白话经典算法系列之五 归并排序的实现
摘要:归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp]view plaincopy//将有序数组a[]和b[]合并到c[]中voidMemeryArray(inta[],intn,intb[],intm,intc[]){inti,j,k;i=j=k=0;while(i<n&&j<m){if( 阅读全文
posted @ 2013-05-29 23:54 知识天地 阅读(326) 评论(0) 推荐(0) 编辑
一步一步写算法(之hash表)
摘要:【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 hash表,有时候也被称为散列表。个人认为,hash表是介于链表和二叉树之间的一种中间结构。链表使用十分方便,但是数据查找十分麻烦;二叉树中的数据严格有序,但是这是以多一个指针作为代价的结果。hash表既满足了数据的查找方便,同时不占用太多的内容空间,使用也十分方便。 打个比方来说,所有的数据就好像许许多多的书本。如果这些书本是一本一本堆起来的,就好像链表或者线性表一样,整个数据会显得非常的无序和凌乱,在你找到自己需要的书之前,你要经历许多的查询过程;而如果你对所有的书本进行编号,并且把这些 阅读全文
posted @ 2013-05-29 00:16 知识天地 阅读(574) 评论(0) 推荐(1) 编辑
素数判断算法(高效率)
摘要:chuanbindeng的素数判断算法关于素数的算法是信息学竞赛和程序设计竞赛中常考的数论知识,在这里我跟大家讲一下寻找一定范围内素数的几个算法。看了以后相信对大家一定有帮助。正如大家都知道的那样,一个数n如果是合数,那么它的所有的因子不超过sqrt(n)--n的开方,那么我们可以用这个性质用最直观的方法来求出小于等于n的所有的素数。num = 0;for(i=2; i<=n; i++){for(j=2; j<=sqrt(i); j++)if( j%i==0 ) break;if( j>sqrt(i) ) prime[num++] = i;//这个prime[]是int型,跟 阅读全文
posted @ 2013-05-29 00:05 知识天地 阅读(2183) 评论(0) 推荐(0) 编辑
八大排序算法总结
摘要:插入排序1.直接插入排序原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,最终将所有无序区元素都移动到有序区完成排序。要点:设立哨兵,作为临时存储和判断数组边界之用。实现:VoidInsertSort(NodeL[],intlength){Inti,j;//分别为有序区和无序区指针for(i=1;i<length;i++)//逐步扩大有序区{j=i+1;if(L[j]<L[i]){L[0]=L[j];//存储待排序元素While(L[0]<L[i])//查找在有序区中的插入位置,同时移动元素{L[i+1]=L[i];//移动i--; 阅读全文
posted @ 2013-05-28 19:00 知识天地 阅读(306) 评论(0) 推荐(0) 编辑
各种排序算法总结
摘要:出自:http://blog.csdn.net/warringah1/article/details/8951220排序明天就要去参加阿里巴巴的实习生笔试了,虽然没想着能进去,但是态度还是要端正的,也没什么可以准备的,复习复习排序吧。1 插入排序voidInsertSort(inta[],intn){for(inti=1;i<n; ++i) {intkey=a[i];intj=i- 1;while(j>=0 &&a[j]>key) {a[j+1] =a[j]; --j; }a[j+1] =key; }}插入排序是稳定的排序,平均和最坏时间复杂度是O(n^2)。 阅读全文
posted @ 2013-05-24 23:19 知识天地 阅读(336) 评论(0) 推荐(0) 编辑
零零散散学算法之再叙字符串匹配
摘要:出自:http://blog.csdn.net/fengchaokobe/article/details/8919074 字符串匹配问题这是个老话题了,而我们也热衷于学习和探讨这个问题,并且我们也经常会用到它。比如说,我们用vim打开一个文本文件,要在这个文件中查找某一个字符串时,我们只需在底行模式下输入/String即可;再比如,在linux终端中,我们要把当前目录下所有的c文件打印出来,那么这时候我们就会利用正则表达式来进行匹配操作(所有的c文件可表示为*.c),而不是挨个去找。好了,书接正文。写本篇文章的目的有二:其一:先前也写过字符串匹配的文章,不过那篇文章只说了字符串固定匹配以及KM 阅读全文
posted @ 2013-05-21 10:22 知识天地 阅读(335) 评论(0) 推荐(0) 编辑
九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)
摘要:作者:v_JULY_v出处:http://blog.csdn.net/v_july_v/article/details/7974418引言 自发表上一篇文章至今(事实上,上篇文章更新了近3个月之久),blog已经停了3个多月,而在那之前,自开博以来的21个月每月都不曾断过。正如上一篇文章支持向量机通俗导论(理解SVM的三层境界)末尾所述:”额,blog许久未有更新了,因为最近实在忙,无暇顾及blog。“与此同时,工作之余,也一直在闲心研究数据挖掘:"神经网络将可能作为Top 10 Algorithms in Data Mining之番外篇第1篇,同时,k-最近邻法(k-nearest 阅读全文
posted @ 2013-05-17 17:07 知识天地 阅读(807) 评论(0) 推荐(0) 编辑
js时间-价格-排序案例____冒泡排序实例
摘要:作者:yjflinchong来源:http://blog.csdn.net/yjflinchong/article/details/7301164js 时间-价格-排序,静态页面排序案例冒泡排序实例在项目中用到的一个例子,分享一下。var sort = { sortdata : '', //排序之前必须先填充原始数据//来源我的博客:http://yijianfengvip.blog.163.com/blog/static/1752734322011102145823/ flag : '', sortDataByType : function(type) {// 阅读全文
posted @ 2013-05-17 17:02 知识天地 阅读(501) 评论(0) 推荐(0) 编辑
常见c++笔试题整理(含答案)page26
摘要:1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已。virtual可加可不加。子类的空间里有父类的所有变量(static除外)。同一个函数只存在一个实体(inline除外)。子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间里,有父类的私有变量。私有变量不能直接访问。--------------------------------------------------------------------------2.输入一个字符串,将其逆序 阅读全文
posted @ 2013-05-16 06:20 知识天地 阅读(596) 评论(0) 推荐(0) 编辑
第二十七章:不改变正负数之间相对顺序重新排列数组.时间O(N),空间O(1)
摘要:在这篇文章:九月腾讯,创新工场,淘宝等公司最新面试十三题的第5题(一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的正负数之间相对顺序),自从去年九月收录了此题至今,一直未曾看到令人满意的答案,为何呢? 因为一般达不到题目所要求的:时间复杂度O(N),空间O(1),且保证原来正负数之间的相对位置不变。本编程艺术系列第27章就来阐述这个问题,若有任何漏洞,欢迎随时不吝指正。谢谢。重新排列使负数排在正数前面原题是这样的:一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的正负数之间相对顺序。比如: input: 1,7,-5,9,-12,15. 阅读全文
posted @ 2013-05-16 06:18 知识天地 阅读(1532) 评论(0) 推荐(0) 编辑
程序员编程艺术第二十六章:基于给定的文档生成倒排索引(含源码下载)
摘要:作者:July、yansha。出处:结构之法算法之道引言 本周实现倒排索引。实现过程中,寻找资料,结果发现找份资料诸多不易:1、网上搜倒排索引实现,结果千篇一律,例子都是那几个同样的单词;2、到谷歌学术上想找点稍微有价值水平的资料,结果下篇论文还收费或者要求注册之类;3、大部分技术书籍只有理论,没有实践。于是,朋友戏言:网上一般有价值的东西不多。希望,本blog的出现能改变此现状。 在第二十四章、倒排索引关键词不重复Hash编码中,我们针对一个给定的倒排索引文件,提取出其中的关键词,然后针对这些关键词进行Hash不重复编码。本章,咱们再倒退一步,即给定一个正排文档(暂略过文本解析,分词等步.. 阅读全文
posted @ 2013-05-16 00:26 知识天地 阅读(1203) 评论(0) 推荐(1) 编辑
程序员编程艺术第二十五章:Jon Bentley:90%无法正确实现二分查找
摘要:作者:July出处:结构之法算法之道引言 Jon Bentley:90%以上的程序员无法正确无误的写出二分查找代码。也许很多人都早已听说过这句话,但我还是想引用《编程珠玑》上的如下几段文字: “二分查找可以解决(预排序数组的查找)问题:只要数组中包含T(即要查找的值),那么通过不断缩小包含T的范围,最终就可以找到它。一开始,范围覆盖整个数组。将数组的中间项与T进行比较,可以排除一半元素,范围缩小一半。就这样反复比较,反复缩小范围,最终就会在数组中找到T,或者确定原以为T所在的范围实际为空。对于包含N个元素的表,整个查找过程大约要经过log(2)N次比较。多数程序员都觉得只要理解了上面的描述,写 阅读全文
posted @ 2013-05-16 00:25 知识天地 阅读(405) 评论(0) 推荐(0) 编辑

1 2 3 下一页