- 博客(10)
- 资源 (21)
- 收藏
- 关注
原创 桶排序
import java.util.*;/** * 桶排序,是一种线性时间的排序算法,需要创建若干个桶来协助排序,每个桶代表一个区间范围,里面可以承载一到多个元素 * 时间复杂度:平均复杂度为O(n) * 第一步:求数列最大、最小值,运算量为n * 第二步:创建崆峒,运算量为n * 第三步:把原始数据的元素分配到各个桶中,运算量为n * 第四步:在每个桶内部做排序,在元素分配相对均...
2020-03-29 22:46:54 109
原创 计数排序
import java.util.Arrays;/** * 计数排序,属于稳定排序 * 时间复杂度:代码1、2、4步都涉及遍历原始数列,运算量都是n,第3步遍历统计数列,运算量是m,所以总体运算量是m,所以总体的运算量是3n+m,去掉系数,时间复杂度是O(n+m) * 空间复杂度:如果不考虑结果数组,只考虑统计数组大小的划,空间复杂度是O(m) * 局限性: * 1、当数列最大和最...
2020-03-29 17:53:46 210
原创 TopK问题
import java.util.Arrays;import java.util.PriorityQueue;import java.util.Queue;/** * 看起来分治法的快速选择算法的时间、空间复杂度都优于使用堆的方法,但是要注意到快速选择算法的几点局限性: * 第一,算法需要修改原数组,如果原数组不能修改的话,还需要拷贝一份数组,空间复杂度就上去了。 * 第二,算法需...
2020-03-26 21:13:42 466
原创 快排
/** * 快排概念: * 快排也属于交换排序,通过元素之间的比较和交换位置来达到排序的目的;在每一轮挑选一个基准元素,并让其他比它大的元素移动到数列一边, * 比它小的元素移动到数组的另一边,从而将数组拆成两个部分,这种思路叫做分治法 * * 时间复杂度: * 原数组在分支法的思想下,没一轮都会被拆分为两部分,所以遍历的轮数为logn,每一轮的比较和交换需要把数组全部遍历一遍, ...
2020-03-26 09:40:37 357
原创 堆排序
堆排序算法步骤:1、把无序数组构建成二叉堆。需要从小到大排序,则构建成最大堆;需要从大到小排序,则构建成最小堆。2、循环删除堆顶元素,替换到二叉堆的末尾,调整堆产生新的堆顶复杂度空间复杂度:因为没有开辟额外的集合空间,所以复杂度为O(1)时间复杂度 O(nlogn):二叉堆的节点“下沉”是堆排序算法的基础,这个复杂度是O(logn)第1步,把无序数组构建成二叉堆,这一步的时间复杂...
2020-03-25 23:03:01 176
原创 二叉堆构建
二叉堆本质上一种完全二叉树,分为:最小堆和最大堆,二叉堆的根结点叫做堆顶最大堆:最大堆的任何一个父节点的值都大于或等于他的左右节点的值,最大堆的堆顶是整个堆中最大元素最小堆:最小堆的任何一个父节点的值都小于或等于他的左右节点的值,最小堆的堆顶是这个堆中最小元素二叉堆的几种操作:1、插入节点:插入位置是完全二叉树的最后一个位置;堆的插入操作是单一节点的“上浮”,平均交换次数都是堆高度的一半,...
2020-03-25 00:19:24 518
原创 二叉树和二叉树的遍历
满二叉树: 一个二叉树的所有非叶子结点都存在左右孩子,并且所有叶子结点都在同一层级上,那么这个树就是满二叉树完全二叉树: 对一个有n个结点的二叉树,按层级顺序编号,则所有结点的编号从1到n。如果这个树所有结点和同样深度的满二叉树的编号从1到n结点位置相同,则这个二叉树为完全二叉树数据结构包含物理结构和逻辑结构,二叉树属于逻辑结构,可通过多种物理结构来表达:链式存储结构和...
2020-03-24 14:35:18 133
flex 图片预览
2014-02-18
spring4.0+hibernate4.3+freemarker+jquery+ext4.2
2014-01-18
仿QQ微博 和 仿手机QQ
2013-07-23
android 程序自动更新
2013-07-23
Flex blazeds和java交互
2011-11-17
Ext+Designer+Preview3.0汉化版.rar
2011-11-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人