算法

三维空间两直线/线段最短距离、线段计算算法

Segmentfault编辑器里对公式的现实暂时不正确,可以参考这里:设有两空间线段$L_s$,其起点、终点坐标为$ s_0、s_1 $,方向向量$vec u = s_1-s_0 $$L_t$,其起点、终点坐标为$ t_0、t_1 $,方向向量$vec v = t_1-t_0 $记两线段对应的直线为$l_s、l_t$,采用向量表示法如下:$$l_s = s_0+c_scdo

查找算法——javascript算法实现

查找表 search table查找表相关概念查找表是由同一类型的数据元素(或记录)构成的集合。由于"集合"中的数据元素之间存在着完全松散的关系,因此查找表是一种非常灵便的数据结构。静态查找表 static search table动态查找表 dynamic search table关键字 key 关键字是数据元素中某个数据项的值,用它可以标识一个数据元素。静态查找表顺序表

揭秘·变态的平方根倒数算法

本文首发于我的博客 转载请注明出处神的时代已离去神的故事却化为传说流落凡间供凡人传颂、膜拜这是什么在上世纪 90 年代,出现过一款不可思议的游戏——雷神之锤(Quake series)。除了优秀的情节设定和精美的画面,最让人称道的莫过于它的运行效率——要知道在那个计算机配置低下的时代,一段小动画都是一个奇迹,但 Quake 却能流畅地运行于各种配置的电脑上。直至 2005

一个有关字符串子串的有趣问题

问题描述:输入一个字符串。输入的字符串仅由'0'和'1'组成,比如'10100011101'这样的。从输入的字符串中截取一段连续的片段作为子串,且子串满足从左往右数,'0'的个数总是不比'1'少。输出其满足条件的最长的子串的长度。下面是JavaScript的实现: function subString(str){var arr = str.split('');var res

子字符串的个数问题

问题及解决 问题描述:输入一个字符串,字符串长度大于3;任意删除字符串的两个字符,得到其子字符串;输出满足条件的不相同的子字符串的个数。JavaScript实现:` function select(str){let arr = str.split('');let iAar = [];let n = 0;arr.map(function(e,i){if(e !== arr[i

算法笔记(JavaScript版)——优先队列

堆的算法 优先队列是一种抽象数据类型,最重要的操作是删除最大元素和插入元素。 用长度为N+1的数组pq[]来表示一个大小为N的堆,堆元素放在pq[1]至pq[N]中,不使用pq[0]。 function MaxPQ(){var pq = [],n = 0;this.show = function(){console.log(pq);}this.insert = functi

[Algorithm] DFS和Backtracking的区别

DFS BacktrackingTarget Structure Actual Tree/Graph Structure Any type of structure where portions of the domain can be eliminated (Chess Board, matrix, implicit tree) Definition A specific

几种常用的排序算法

本文讨论两种著名且很有用的排序算法:插入排序,快速排序。插入排序插入排序的思想与打牌起牌类似:每次从牌堆里拿一张牌,插入到已经排好序的牌中。具体算法描述如下:从第一个元素开始,该元素可以认为已经被排序取出下一个元素,从该元素开始,从后向前扫描表如果前一个元素大于后一个元素,则交换两个元素的位置重复步骤 3,直到前一个元素不大于后一个元素重复步骤 2~4现有一组数组 A =

算法学习之数据结构线性表、堆、栈

一、喜欢单挑线性表1.线性表的特性线性表是一个线性结构,它是一个含有n≥0个节点的有限序列。在节点中,有且仅有一个开始节点没有前驱并有一个后继节点,有且仅有一个终端节点没有后继并有一个前驱节点。其他的节点都有且仅有一个前驱和一个后继节点。通常可以把一个线性表表示成一个线性序列:k1,k2,…,kn,其中k1是开始节点,kn是终端节点。1.1 线性结构的特征在编程领域中,线性

算法学习之算法思想

一、算法的特征和发展由来算法的英文名称是Algorithm,这个词在1957年之前在Webster's New World Dictionary(《韦氏新世界词典》)中还未出现,只能找到带有它的古代涵义的较老形式的“Algorism”(算术),是指用阿拉伯数字进行算术运算的过程。在中世纪时,珠算家用算盘进行计算,而算术家用算术进行计算。根据经验和发展结论得出,算法应该具有如