随笔分类 - 数据结构与算法
摘要:最近的一个活动配置需求,有一个非常奇葩的配置字段,可以配置活动在每天的某些时间段上线,如下图中“每日限时”,尽管已经是傻瓜操作了,但是考虑到严谨性,(实际上是为了防止产品手抖),如果两个时间段之间有重叠,应该合并两个时间段,比如下图两个时间段按道理应该合并成20:49~22:49。那么从代码层面该如何合并这两个时间段呢?首先需要判断两个时间段是否重叠,两个时间段如果有重叠的话,从正面考虑的话,...
阅读全文
摘要:关于排序算法的博客何止千千万了,也不多一个轮子,那我就斗胆粗制滥造个轮子吧!下面的排序算法未作说明默认是从小到大排序。 1.快速排序2.归并排序3.冒泡排序4.选择排序(简单选择排序)5.插入排序(直接插入排序)6.希尔排序二分查找 1.快速排序 为什么把快排放在最前面呢,因为传说Chrome中数组的sort方法默认采用的就是快排。 算法思想: (1)在数据集之中,选择一个元素作为"基准...
阅读全文
摘要:循环单向链表 图(a)添加头节点 图(b)添加尾节点void addToTa...
阅读全文
摘要:1.简介 前面3.1的单链表在操作过程中有一个缺点,就是后面的节点无法直接找到前面的节点,这使很多操作都得从头到尾去搜寻节点,算法效率变得非常低,解决这个问题的方法就是重新定义链表的节点使每个节点有两个指针,一个指向前驱一个指向后驱,这就是双向链表。节点定义templateclass DLLNode {public: DLLNode() { next = prev = 0; ...
阅读全文
摘要:1.单链表简介 数组在编程语言中用的非常有用,但是属数组至少有两个缺点(1) 编译时就得知道数组的大小(2)在计算机内存中是连续存储的,这就意味着在数组中插入或删除一个数据,就需要调整其他数据。而使用链表结构就不存在这些问题下图表示一个链表的结构及其构造过程。上图所示的链表中的每个节点都是下面类定义...
阅读全文
摘要:本文翻译自维基百科,译者:http://www.cnblogs.com/xrwang/archive/2011/03/09/ransac-1.html,本人在此基础上进行了一些添加和修改。 英文原文地址是:http://en.wikipedia.org/wiki/ransac,如果您英语不错,建议您...
阅读全文