数据结构和算法
文章平均质量分 55
BigoSprite
这个作者很懒,什么都没留下…
展开
-
归并排序(mergeSort)之非递归算法
updating原创 2016-04-07 00:06:50 · 526 阅读 · 0 评论 -
归并排序(mergeSort)之递归实现
1. 归并排序基本思想 归并排序其实要做两件事: (1)“分治策略”——将序列每次折半划分,递归分治。 递归的将数组的前半部分和后半部分数据各自归并排序,得到排序后的两部分数据,然后使用下面的合并算法再将这两部分合并到一起。 (2)“合并算法”——将划分后的序列段两两合并后排序。 基本的合并算法是取两个输入数组A和B,一个输出数组C,以及三个计数器Aptr,Bptr和Cptr它们的初原创 2016-04-06 23:35:14 · 805 阅读 · 0 评论 -
前序遍历,中序遍历和后序遍历 & 已知两种遍历,求第三种遍历
前序遍历,中序遍历及后序遍历原创 2016-05-03 12:45:09 · 2363 阅读 · 1 评论 -
插入排序
插入排序是一种常见且很简单的排序方法。现在有下面一组数据需要进行排序,如下图所示: 下面的动态图解释了插入排序是如何运作的: 插入排序是这么运作的: 1. 取44(索引i=1)和i之前的数进行比较,由于3 2. 取索引i=2处的38,将38和它之前的所有数依次进行比较:因为38 3不需要交换,索引加1:i=3 3. 取索引i=3处的5,将5和它之前的所有数依次进行比较原创 2016-07-18 21:19:32 · 592 阅读 · 0 评论 -
队列
一、队列初探队列(queue)是只允许在一端进行插入操作,在另一端进行删除操作。其中,插入元素(即入队列)的一端为队尾(rear),删除元素的一端为队头(front)。与栈不同的是,队列是一种先进先出的线性表,简称FIFO。假设队列q = (a1, a2, …, an),那么a1为队头,an为队尾。如下图所示: 二、顺序队列的不足假设我们有队列q = (a1, a2, …, an),顺序队列需要建原创 2016-10-14 11:02:30 · 815 阅读 · 0 评论 -
第5章 散列——分离链接法
#include <iostream> using namespace std;typedef int ElementType;struct ListNode { ElementType elem; ListNode* next; };struct HashTable { int tableSize; ListNode* *lists; };// 散列函数 unsig原创 2016-10-18 15:58:23 · 663 阅读 · 0 评论