Algorithm
yuluoxuanyuan1992
这个作者很懒,什么都没留下…
展开
-
算法1.常见查找算法以及数据结构比较
最近一直在复习,查找算法作为最常用的算法,作为算法系列第一部分总结一下,一来作为笔记,二来可以与大家一起分享,共同学习,共同进步,转载请注明出处,谢谢。1. 顺序查找原理 顺序查找,按照字面意思,就是按照排列顺序,依次将查找关键词key与元数据每一项进行对比,如果找到就结束。适用范围 所有数据,但是对于过大的数据,不太实用,时间复杂度较高时间复杂度、空间复杂度分析 时间复杂度O(n原创 2016-09-17 18:49:05 · 657 阅读 · 0 评论 -
二叉搜索树应用分析
二叉搜索树(B树)特性1.所有非叶子结点至多拥有两个儿子(Left和Right);2.所有结点存储一个关键字;3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 基本操作搜索 struct TreeNode { int val; TreeNode * left; TreeNode * right;原创 2016-09-19 15:50:22 · 375 阅读 · 0 评论 -
排序算法分析
排序定义所谓排序,即将原本无需的一个序列重新排列成有序的序列。注意,这个序列中的每一项可能是单独的数据元素,也可能是一条记录。稳定性所谓稳定性,是指排序中的序列中有两个或者两个以上相同的数据项,排序前后,这些相同的数据项相对位置没有发生变化,那么这个排序算法是稳定的。 下面就几种常见排序算法进行总结分析,并会加入一些代码分析。1.直接插入排序(稳定)算法基本思想 有点像咱们打扑克牌的原创 2016-09-19 18:30:49 · 257 阅读 · 0 评论 -
随机洗牌算法
所谓随机洗牌算法就是将1-54或者推广来说1-n位置上的数字随机的进行排列,共有N!个排列,且每个机会都是均等的。朴素的洗牌算法用rand()函数,每次获得一个index,如果这个index上的数字没有被访问过,把它加到结果中,如果已经访问,那么再次随机。 时间复杂度O(n*n)空间复杂度O(n) 很容易证明这个算法是对的,第一次有n种选择,第二次n-1.。。。。最优的洗牌算法原创 2017-01-07 13:55:17 · 342 阅读 · 0 评论 -
ICP 多视角点云对齐方法介绍
最近的工作涉及到点云重建部分,所以写下这些博客,用来作为笔记,整理自己的思路。这是该部分文章的第一篇,主要介绍点云对齐的方法。物体从扫描到生成完整的网格的过程: 1.通过扫描仪获得物体的多片点云数据 2.任意两片点云之间进行粗对齐,获得精细对齐的初始位置 3.使用ICP算法进行精细对齐 4.全局优化多片点云的位置 5.去除点云的重叠部分,并且网格化1.0 三原创 2017-01-06 15:29:08 · 19371 阅读 · 2 评论 -
交换两个值的方法
方法1:利用中间变量交换 void swap(int &a, int &b) { int tmp = a; a = b; b = tmp; }方法2:不使用中间变量,直接在a 和 b基础上进行修改 void swap(int &a, int &b) { a += b; b = a - b;原创 2017-01-09 19:50:12 · 320 阅读 · 0 评论 -
数组第K小的数
1.1 题目描述 查找一个数组的第K小的数,注意同样大小算一样大。 如 2 1 3 4 5 2 第三小数为3。 输入描述: 输入有多组数据。 每组输入n,然后输入n个整数(1<=n<=1000),再输入k。输出描述: 输出第k小的整数。输入例子: 6 2 1 3 5 2 2 3输出例子: 3方案1:对数组进行排序,然后找出第k小的数字时间复杂度O(nlogn), 空间复杂度O原创 2017-01-09 21:57:55 · 964 阅读 · 0 评论