- 博客(5)
- 收藏
- 关注
原创 堆排序
堆排序-优化的选择排序 这个排序首先要 1构造最大堆(通过自底向上保持最大堆化),2再将获得的最大值与末尾节点互换,3接着保持原数组长度-1的最大堆化(不需要再构造最大堆,由于其已经建立了下层满足最大堆化的性质),重复2~3步,直到只剩下一个节点(叶子节点就是最大堆!)需要维护 时间复杂度O(nlog2n) 空间复杂度O(1) 不稳定的 import java.util.Ar
2017-04-03 12:02:22
179
原创 快速排序
快速排序 原理不讲了,看过很多遍了 最好和平均时间复杂度O(nlog2n),最坏是每次挑的哨兵都是最值(快速排序将不幸退化为冒泡排序)此时的时间复杂度O(n2) 空间复杂度最坏O(n) 最优及平均O(log2n) 不稳定(重复数据后往前) import java.util.Arrays;/** * Created by xiaolong_ma on 2017/4/2. */
2017-04-02 17:15:41
159
原创 二分查找-针对已排序数组
二分查找 如有重复返回第一个出现位置的数组坐标 二分查找的时间复杂度为log2n(其查找前提是已排序啦,顺序查找当然是n)public class BinarySearch { public static void main(String[] args) { int [] A = {1,3,3,3,3,4,4,4,5,5,5,5}; System.o
2017-04-02 16:10:07
1351
原创 二叉树的遍历-按层次遍历
二叉树的遍历-按层次遍历 通过先序遍历及中序遍历结果构造二叉树 按层级遍历二叉树 import java.util.Arrays; import java.util.Scanner;/** * Created by xiaolong_ma on 2017/4/1. * 输入: * 节点数 * 先序遍历结果 * 后序遍历结果 * 例如:
2017-04-02 15:20:53
361
原创 java多线程技术学习(1)--java多线程基础
java多线程技术学习(1)–java多线程基础 进程与线程 定义 进程: 具有一定独立功能的程序关于数据集合上的一次运行程序,它是系统进行资源分配和管理的独立单位 线程:进程中独立运行的子任务,是CPU调度和分配的基本单位 关系 如果进程只有一个线程,称之为单线程;有两个及以上多个线程则称为多线程。进程拥有系统分配的软硬件资源,即拥有独立且完整的虚拟地址空间,由进程控制块(PCB)、程
2016-11-26 19:15:54
229
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人