Algorithm
UNCLESAM12
这个作者很懒,什么都没留下…
展开
-
插入排序
插入排序 主要用途 插入排序适用于少量元素的排序。时间复杂度 空间复杂度 过程分析 这里我们主要通过图解的方式详述插入排序的过程:见下图 这里选择 序列 {3,1,2,4,6,5 }作为初始序列原创 2016-07-24 16:09:21 · 209 阅读 · 0 评论 -
分治法—归并排序
归并排序 算法原理 归并排序主要依据分治法的思想,通过将原问题转换为于原问题相似,但规模更小的子问题。递归的求解子问题,然后再合并这些子问题的解来建立原问题的解。 分解:分解待排序的n个元素的序列成两个子序列。 解决:使用归并排序递归的排序两个子序列。 合并:合并两个排序的子序列以产生已排序的答案。 算法实现 子序列合并算法的实现 对于两个已经有序的子序列(默认从小到大排列),首先原创 2016-07-31 22:15:02 · 741 阅读 · 0 评论 -
分治法-最大子数组
最大连续子数组 题目描述 给定一个数组序列(如果数组全部是正数,最大子数组就是序列本身,所以这里假定序列中存在正数跟负数),找到数组中和最大的连续数组。 算法分析 从题目的描述中我们很容易想到的就是暴力破解,利用两层循环找出最大连续子数组,但是这样的算法复杂度是O(n^2)。这里考虑使用分治法的思想分析问题,找到时间复杂度更小的解决方法。原创 2016-08-04 21:21:48 · 468 阅读 · 0 评论 -
哈夫曼编码原理以及实现
哈夫曼编码原理以及实现原创 2016-11-26 15:32:11 · 21169 阅读 · 0 评论 -
堆排序原理以及实现
堆排序原理以及实现 堆性质的简介 堆是以二叉树的形式存储的一种数据结构,常见的堆的使用方式主要包括:堆排序,优先队列的构造。堆主要分为最小堆与最大堆,最小堆的主要性质是根结点小于等于两个子结点的值,同理可得,最大堆的主要性质是根节点大于等于两个子节点的值。由于堆是一棵二叉树,所以根据堆的性质,堆可以看作是一棵完全二叉树。 堆的维护 从定理中可以看出,要想保持堆的基本性质关键点在于根节点与两原创 2016-12-03 10:12:53 · 332 阅读 · 0 评论 -
二叉排序树
欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I原创 2017-02-27 23:14:32 · 434 阅读 · 0 评论