算法
文章平均质量分 55
ack_Finding
这个作者很懒,什么都没留下…
展开
-
迪杰斯特拉算法(找到两点间的最短距离)
根据该博客的算法进行修改:http://sbp810050504.blog.51cto.com/2799422/690803/ 不确定是否有错误,如有错误,敬请指正 public int dijkstra(int[][] W, int start, int end) { if(start == end){ return 0; } // 是否已经标号 boolean[] isLabel原创 2017-09-15 19:25:54 · 1187 阅读 · 0 评论 -
经典排序算法相关知识
1、经典排序算法的空间复杂度 (1)O(1) 插入排序、选择排序、冒泡排序、堆排序、希尔排序 (2)O(logN)~O(N) 快速排序 (3)O(N) 归并排序 (4)O(M) 对于时间复杂度O(n)的不基于比较的算法,它们的空间复杂度为O(M),M为选择桶的数量。 ps:计数排序和基数排序思想来源于桶排序 2、 (1)稳定的排序算法 冒原创 2017-09-01 17:46:56 · 261 阅读 · 0 评论 -
排序练习2
1、有一个只由0,1,2三种元素构成的整数数组,请使用交换、原地排序而不是使用计数进行排序。 给定一个只含0,1,2的整数数组A及它的大小,请返回排序后的数组。保证数组大小小于等于500。 测试样例: [0,1,1,0,2,2],6 返回:[0,0,1,1,2,2] 思想:来自于快速排序。在数组左边设置一个为0的空域,表示放置0的地方。在数组右边设置一个为0的空域,表示放置为2的原创 2017-09-08 07:09:27 · 330 阅读 · 0 评论 -
字符串相关概念
1、回文 2、子串(连续) 字符串的一个连续的局部 3、子序列(不连续) 一个字符串的子序列是指在原字符串上去除某些字符但不破坏余下元素的相对位置(在前或在后)而形成的新字符串。 比如对串: "abcdefg" 而言,"ab","abd","bdef" 等都是它的子序列。特别地,一个串本身,以及空串也是它的子序列。 4、前缀树(Trie树,字典树) Trie,原创 2017-09-12 17:27:14 · 507 阅读 · 0 评论 -
排序练习1
1、小范围排序 已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k,并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序。 给定一个int数组A,同时给定A的大小n和题意中的k,请返回排序后的数组。 测试样例: [2,1,4,3,6,5,8,7,10,9],10,2 返回:[1,2,3,4,5,6,7,8原创 2017-09-06 20:08:34 · 413 阅读 · 0 评论 -
经典排序算法——桶排序
计数排序和基数排序都是典型的桶排序算法,桶排序只是一种思想而不是一种算法,桶排序是不需要比较的排序。 1、计数排序 直接画图会比较好理解,此处以 [1,2,3,5,2,3],6原创 2017-09-01 08:51:21 · 336 阅读 · 0 评论 -
Manacher算法——找字符串最长的回文子串
1、经典办法:在两头和每个字符加上一个特殊字符,相当于加了一个轴,从头遍历判断回文字符,得到的长度/2就是结果。时间复杂度:O(N^2) 2、Manacher(和经典办法相似,但有加速过程):在两头和每个字符加上一个特殊字符,相当于加了一个轴 普及概念: 回文范围=回文直径=2*回文半径=从一个位置为中心出发扩出来的范围 最右回文边界:从左往右扩,用一个变量记录最右的边界R,忽略是由哪个字原创 2017-11-30 15:42:54 · 317 阅读 · 0 评论 -
BFPRT算法——在一个无序数组找出前k小的数
1、在一个无序数组找出第k小的数,经典算法:原创 2017-12-01 13:36:36 · 755 阅读 · 0 评论