各种排序算法总结

1、【冒泡排序法】         又称交换排序法,即在排序过程中,让较大的元素向下沉,较小的元素向上浮,其处理程序从元素的开始位置起,相邻的元素进行比较,若第i个数大于第i+1个数,则互相交换,比较过所有的元素后,最大的元素将会被排到最后面;重复每一趟均会将最大值放在当前的最后面。 void b...

2017-07-13 21:37:47

阅读数 150

评论数 0

快速排序总结

快速排序快速排序是一种经常使用应用最广泛的一种排序算法,它可以算是冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序...

2017-07-08 14:15:45

阅读数 248

评论数 0

数据结构map与set

map与set基本使用

2017-06-28 11:44:18

阅读数 217

评论数 0

堆知识总结

堆是一种完全二叉树,堆结构的二叉树存储方式分为大堆和小堆。大堆:每个父节点都大于孩子节点小堆:每个父节点都小于孩子节点创建一个大堆:向下调整算法思路:我们知道堆均是完全二叉树,因此一个父节点的子节点即child = parent*2+1;因此在向下调整算法中从根节点开始逐一与它的孩子进行比较,每次...

2017-06-03 16:09:00

阅读数 158

评论数 0

二叉树的三种遍历递归法和非递归法(前序、中序、后续)

二叉树的前序遍历:根->左->右1、递归方法:思路:我们知道递归就是将一个大问题不断分成子问题进行处理,当达到递归终止条件时,跳出。因此在前序遍历中我们把每一个节点分成三部分,即:根节点、左子树、右子树。例如下面这个二叉树递归过程:转化成代码代码:void PrevOrder() ...

2017-05-29 12:51:16

阅读数 244

评论数 0

走迷宫问题:回溯法和递归法

问题描述:给一迷宫表个和入口位置,找出并打印出从入口到出口的路径注意:迷宫表格我们可以用一个二维数组来表示,但是如果用二维数组表示,将唯一固定,迷宫趣味性大大降低并代码长度增大;因此,我们最好是将迷宫表格存储在一文件中,在实现时再从文件中读取;采用模板来实现可实现复用性;设计分析:1、我们可沿着入...

2017-05-25 15:44:48

阅读数 2058

评论数 0

树与二叉树初识

树相关的一些概念。 树是n(n>=0)个有限个数据的元素集合,形状像一颗倒过来的树。 节点:结点包含数据和指向其它节点的指针。 根节点:树第一个结点称为根节点。 结点的度:结点拥有的子节点个数。 叶节点:没有子节点的节点(度为0)。 父子节点:一个节点father指向...

2017-05-25 12:13:08

阅读数 218

评论数 0

模拟实现队列

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 模拟代码: #include using namespace std...

2017-05-24 11:09:25

阅读数 510

评论数 0

队列和栈相关面试题总结

1、实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)?? 分析:      出栈和入栈根据栈自身提供的接口不难实现,而返回最小值,我们知道遍历一次栈即可找到最小值,但是对栈的操作只能在栈顶,因此,要遍历势必要改变栈的状态,而且还要求时间复杂度为...

2017-05-23 23:49:51

阅读数 355

评论数 0

栈的模拟实现

#include using namespace std; #include template class Stack { public: Stack() :_arr(NULL) ,_size(0) , _capacity(0) {} void Push(const T&am...

2017-05-23 20:44:22

阅读数 323

评论数 0

C语言实现通讯录(静态版)

利用c语言结构体、指针、函数等知识实现一个通讯录,具有基本增删改插等功能:

2017-03-01 22:18:48

阅读数 347

评论数 0

数据结构之单链表基本功能的实现

单链表的创建,尾插,头插,逆置,删除,销毁等功能

2017-02-28 16:42:15

阅读数 792

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭