从大一学编程起,就对算法很是敬畏,大二开的算法课,老师也只是照着书念念,当时也是刚对编程入门吧,基本语法和程序组织结构才刚刚清楚那种,所以除了基本几样查找算法,其他的基本没学~~~学渣不仅学的晚,还学的慢。也不得不吐槽下,祖国母亲的应试教育真是.....高中弄的也是没得时间来捣鼓电脑,更别谈接触.....
分类:
编程语言 时间:
2015-06-27 15:50:55
阅读次数:
122
//从今天起准备认真看完这本书。本渣虽然笨,但是窝懒啊。。。。//今天开始看第一章。希望坚持下去。第一章 引言通过讨论连通问题的几种算法,来引出算法的重要性。1.1 连通问题的快速查找算法感觉就是把每个点染色,每个颜色代表一堆,互相连通。每次输入两个点,把两个点所属那个颜色改为相同,这样他们代表就都...
分类:
编程语言 时间:
2015-06-26 14:58:45
阅读次数:
109
目前为止已经介绍了顺序查找、二分查找、分块查找、二叉排序树,见作者之前的文章:
http://blog.csdn.net/u010025211/article/details/46635325
http://blog.csdn.net/u010025211/article/details/46635183
今天这篇博文将介绍哈希查找。
1.为什么要用哈希查找
之前所讲...
分类:
编程语言 时间:
2015-06-25 15:33:14
阅读次数:
235
近期总结了各大排序算法的原理 ,并对其进行了实现,想着一并把查找算法总结了,今天就着手开始总结查找算法。
废话不多说,这篇文章从最简单的查找算法开始讲起,之后会补充复杂的二叉搜索树查找(BST)和B树,B+树查找以及哈希查找等。
顾名思义,查找就是寻找到关键字在队列中的位置,最笨的查找算法就是依次顺序比较,复杂度为O(n),但是有很多方法的复杂度可以达到O(logn)等等。
1.顺序...
分类:
编程语言 时间:
2015-06-25 14:03:52
阅读次数:
160
前面总结了顺序查找,二分查找,分块查找算法,此篇博文将详解介绍二叉排序算法(Binary Sort Tree)。
在介绍二叉排序算法之前,首先介绍什么事二叉排序树(BST)。
首先从二叉树讲起:
1、二叉树的概念
二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(leftsubtree)和“右子树”(rightsubtree)。二叉树常被用作二叉查找树和二叉...
分类:
编程语言 时间:
2015-06-25 14:03:02
阅读次数:
153
今天总结了有序表查找常用的三种算法与大家分享。1.折半查找折半查找又称二分查找,它的基本思想是:在有序表中,取中间记录作为比较对象,若相等则查找成功;若给定值小于中间记录的关键字,则在中间记录左半区继续查找,若给定值大于中间值,则在又半区寻找,不断重复以上过程。算法代码(java版)int bina...
分类:
编程语言 时间:
2015-06-24 15:56:59
阅读次数:
163
问题描述一个循环有序的数组是形如:“12,16,18,20,41,100,1,4,6,9” 这样的数组。问题分析对于循环有序数组,一种简单的定义是:
循环有序数组是将一个有序数组切成两段,并交换位置得到引用块内容
比如现将1,4,6,9,12,16,18,20,41,100在9和12处切分,得到两段:1,4,6,9和12,16,18,20,41,100,再交换这两段的位置就得到了一开始的循环有序...
分类:
编程语言 时间:
2015-06-22 12:28:55
阅读次数:
217
标准的二分查找,大家可能都已经能记在脑海里了,但是稍微变形一下,可能就会出问题。本文写了一个二分查找算法,并且做了一个测试的脚手架,用二分查找和普通算法的结果进行比较来验证算法的正确性。 1 #include 2 #include 3 using namespace std; 4 int find(...
分类:
编程语言 时间:
2015-06-22 12:22:40
阅读次数:
154
算法是程序员必被的一个技能,在面试中常常出现,下面总结了面试中出现的常见算法,这些算法程序员应该牢记在心中,要非常熟练。...
分类:
编程语言 时间:
2015-06-22 08:47:04
阅读次数:
129
数据结构中提供了很多查找算法,诸如插值查找,顺序查找,斐波那契查找等。按查找的操作方式分类,分为:静态查找:数据集合稳定,不需要添加,删除元素的查找操作。动态查找:数据集合在查找的过程中,需要同时添加,或者删除元素的查找操作。例如当在维基百科中查找东西,当查找目标不存在时,会提示用户:是否创建一个?...
分类:
编程语言 时间:
2015-06-20 21:58:46
阅读次数:
276