摘要: 使用递归方法来处理递归定义的数据时非常有效。 考虑到文件系统在计算机上的存储方式。 每个文件被存储在一个文件夹或目录下,但目录包含的可能不仅仅是文件,还可能包含其它的目录,子目录又包含再下一级的目录,以此类推,目录可以任意深度进行嵌套。 //一个简单的示例 public class Director 阅读全文
posted @ 2017-04-09 21:35 Hosens 阅读(964) 评论(0) 推荐(0) 编辑
摘要: / 增量运算 1.区分概念:“增量” 和 “自增” 增量:让某个变量不断增加,我们称之为增量。同理,让某个变量不断减小,我们称之为减量。 自增:当增量或减量为1时,为了表达简洁,我们使用自增或自减运算符(++ 和 )。 2.区分概念:“变量的值” 与 “表达式的值” 变量:一个有名称和类型的存储位置 阅读全文
posted @ 2017-04-09 21:26 Hosens 阅读(3740) 评论(0) 推荐(0) 编辑
摘要: 查找:是一种试图爱数据集或数组中发现某一目标值的操作。 查找分为以下几种: ①顺序查找 ②二分法查找 ③分块查找 ④散列表 排序:是使列表或数组中的元素按照自然顺序进行排列的一种操作。 排序主要分为以下几种:(插归选基交) ——1.1直接插入排序 o(n sqrt(2)) ①插入排序 | —— 1. 阅读全文
posted @ 2017-04-09 21:22 Hosens 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 假设有一组无序序列 R0, R1, ... , RN 1。 (1) 我们先将这个序列中下标为 0 的元素视为元素个数为 1 的有序序列。 (2) 然后,我们要依次把 R1, R2, ... , RN 1 插入到这个有序序列中。所以,我们需要一个外部循环,从下标 1 扫描到 N 1 。 (3) 接下来 阅读全文
posted @ 2017-04-09 21:20 Hosens 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 前期概念: 二叉树 完全二叉树 左序遍历 中序遍历 右序遍历 堆 小根堆 大根堆 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节 阅读全文
posted @ 2017-04-09 21:18 Hosens 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 选择排序是一种很常见的排序算法,它需要对数组 中的元素进行多次遍历。每经过一次循环,选择最小的元素并把它放在靠近数组前端的位置。 代码实现: public static void selectionSort(int[] num) { for (int i = 0; i num[j]) { num[i 阅读全文
posted @ 2017-04-09 21:14 Hosens 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序算法的运作如下:(从后往前) 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字 阅读全文
posted @ 2017-04-09 21:10 Hosens 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 快速排序使用分治策略(Divide and Conquer)来把一个序列分为两个子序列。步骤为: 从序列中挑出一个元素,作为"基准"(pivot). 把所有比基准值小的元素放在基准前面,所有比基准值大的元素放在基准的后面(相同的数可以到任一边),这个称为分区(partition)操作。 对每个分区递 阅读全文
posted @ 2017-04-09 21:06 Hosens 阅读(386) 评论(0) 推荐(0) 编辑
摘要: / 归并排序:通常以递归的方式来实现,它反复将所处理的数组分成两半,并分别对这两半进行排序, 最后再把经过排序的数组归并在一起。 / 归并排序的伪代码实现: 将数组分为两半 对左半部分排序 对右半部分排序 合并左右两部分 合并算法的伪代码描述: i1 = 0; //左半部分的索引 i2 = 0;// 阅读全文
posted @ 2017-04-09 21:03 Hosens 阅读(358) 评论(0) 推荐(0) 编辑