数据结构与算法
文章平均质量分 77
MR_kris
king
展开
-
直接插入排序
直接插入排序基本思想 1、基本思想 假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i=n为止,依次将R[i]插入当前的有序区R[1..i-1]中,生成含n个记录的有序区。 一趟直接插入排序方法 1.简单方法 首先在当前有序区R[1..i-1]中查找R[i]的正确插入位置k(1≤k≤原创 2015-08-01 16:02:32 · 302 阅读 · 0 评论 -
查找(二)二叉查找数BST
template bool binarSearchTree:: contain( const Comparable & x )const { return contain( x, root ); } template bool binarSearchTree:: contain(const Comparable & x ,binaryNode* t)const { if ( t == NU原创 2015-09-26 10:21:42 · 365 阅读 · 0 评论 -
查找(三)hash 与map
一,hashtable原理: 哈希表又名散列表,其主要目的是用于解决数据的快速定位问题。考虑如下一个场景。 一列键值对数据,存储在一个table中,如何通过数据的关键字快速查找相应值呢?不要告诉我一个个拿出来比较key啊,呵呵。 大家都知道,在所有的线性数据结构中,数组的定位速度最快,因为它可通过数组下标直接定位到相应的数组空间,就不需要一个个查找。而哈希表就是利用数组这个能够快速定位数原创 2015-09-26 11:24:49 · 564 阅读 · 0 评论 -
查找(一)二分查找
在面试的时候二分查找是用的比较多一种查找算法,如何在面试官面前快速准确得的写出代码决定你是否能够被录取。以前一直以为二分查找很简单,所以就没怎么重视,但是真要在面试官面前对着黑板手写出来,还是漏洞百出。今天自己在电脑面前敲出了二分查找的代码,也花了将近半个小时。对于这种基础排序查找算法,还是得好好重视。 二分查找的时间复杂度是O(log(n)),最坏情况下的时间复杂度是O(n)。二分查找的一原创 2015-09-26 09:35:16 · 351 阅读 · 0 评论