``` import java.util.ArrayList; import java.util.List; / 排序算法主类 @author eric / class SortArray { / 【插入排序】 基本思想: 在要排序的一组数中,假设前面(n 1) [n =2] 个数已经是排好顺序的, ...
分类:
编程语言 时间:
2018-12-14 10:21:50
阅读次数:
293
1.冒泡排序 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。 优化版的冒泡排序Java实现,增加了一个标记变量flag,内层循环没有改变,则直接退出循环。 ...
分类:
编程语言 时间:
2018-12-12 23:41:00
阅读次数:
274
总体结构 在tcmalloc内存管理的体系之中,一共有三个层次:ThreadCache、CentralCache、PageHeap,如上图所示。分配内存和释放内存的时候都是按从前到后的顺序,在各个层次中去进行尝试。基本思想是:前面的层次分配内存失败,则从下一层分配一批补充上来;前面的层次释放了过多的 ...
分类:
其他好文 时间:
2018-12-11 21:41:24
阅读次数:
179
实验目的:深入理解图的邻接矩阵存储结构 实验内容: 已知某无向网如图所示,要求利用数组表示法建立该网。 基本思想:编写两个功能函数,一个负责建立无向网的邻接矩阵存储结构,另一个负责对无向网的打印输出。 步骤1:引入必要的函数库 #include <stdio.h> #include <stdlib. ...
分类:
编程语言 时间:
2018-12-11 20:22:31
阅读次数:
172
Java数据结构和算法(二)树的基本操作 一、树的遍历 二叉树遍历分为:前序遍历、中序遍历、后序遍历。即父结点的访问顺序 1.1 前序遍历 基本思想:先访问根结点,再先序遍历左子树,最后再先序遍历右子树即根—左—右。图中前序遍历结果是:1,2,4,5,7,8,3,6。 1.2 中序遍历 1.3 后序 ...
分类:
编程语言 时间:
2018-12-11 11:17:10
阅读次数:
220
堆排序 一、概述 首先我们来看看什么叫做堆排序? 若在输出堆顶的最小值之后,使得剩余的n 1个元素的序列重新又构成一个堆,则得到n个元素中的次小值,如此反复,便能得到一个有序序列,称这个过程为堆排序。 再来看看总结一下基本思想: 1. 将无序序列建成一个堆 2. 输出堆顶的最小(大)值 3. 使剩余 ...
分类:
编程语言 时间:
2018-12-11 11:16:53
阅读次数:
224
一、算法介绍 快速排序:快速排序的基本思想是通过一次排序将等待的记录分成两个独立的部分,其中一部分记录的关键字小于另一部分的关键字。C部分的快速排序一直持续到整个序列被排序。 任取一个元素 (如第一个) 为中心提出所有小于它的元素,并将大于它的元素放回,形成左右两个子表。为每个子表重新选择中心元素, ...
分类:
编程语言 时间:
2018-12-10 23:29:04
阅读次数:
257
对象是否存活Java的GC基于可达性分析算法(Python用引用计数法),通过可达性分析来判定对象是否存活。这个算法的基本思想是通过一系列"GCRoots"的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GCRoots没有任何引用链相连时(图论称之为不可达),则证明此对象是不可用的。无论引用计数法,还是可达性分析都离不开“引用”的概念。Java
分类:
其他好文 时间:
2018-12-09 23:40:04
阅读次数:
260
直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。 1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=1 2. 将a[i]并入当前的有序 ...
分类:
编程语言 时间:
2018-12-09 14:01:39
阅读次数:
226
基本思想 主体上是在期望为线性的选择算法上进行改进,将其中的随机的划分元素改为取中位数,使划分更均匀,从而达到最坏时时间复杂度也为线性.需要注意的是实现时里面的索引很晕,别搞混了.我就是先写了个很乱,然后实在改不下去了,就重写了,总共我大概写了5,6个小时吧.(可能我太菜了) 图解 " " 代码 伪 ...
分类:
编程语言 时间:
2018-12-08 13:08:50
阅读次数:
227