数据结构
BunnyCoffer
现在就开始吧
展开
-
算法- 前言
计算机编程 分成两部分:数据结构 + 编程语言。 编程语言是为了实现功能,数据结构是为了更高效的执行程序。第一部分:算法的分类 在开发中,我们将算法分为两类:排序,查找第二部分:排序方法的分类 根据数据的大小将排序分为:内排序,外排序。 内排序:当数据量不大时,可将数据一次性放入内存空间,进行排序,返回结果。 外排序:因为数据量非常的大,一次性无法将原创 2017-12-11 15:44:03 · 226 阅读 · 0 评论 -
算法-冒泡排序
算法有人说难,有些人说容易,其实算法只是一种解决问题的思想。最简单的算法应该就是冒泡排序了。第一部分:什么是冒泡排序 将相邻的两个数据进行比较,并交换的排序算法。从后向前,依次相邻两个元素进行比较,符合条件的话,就进行交换。 f(n) 与 f(n-1) 进行比较,进行n-1次比较过程。 需要进行n-1轮比较,每一次比较都可原创 2017-12-13 10:32:03 · 164 阅读 · 0 评论 -
数据结构 - 排序模块
整个数据结构被分为两部分,一部分为“排序”,一部位为“查找”。排序就是将一串无意义的数据进行整理变成更有意义。关于排序算法主要分两类:比较排序,线性时间排序。比较排序依赖元素的比较和交换,找到合适的位置。线性排序依赖数据集合中的某些特征,所以不是所有场合都可以使用。常用的排序包括:1)冒泡排序:时间复杂度 O(n^2) 空间复杂度 O(1)一种简单基础,但是低效的排序方式。两...原创 2019-02-11 18:03:28 · 455 阅读 · 0 评论 -
快速排序
/** * 快速排序 * 思路:以数组的第一个值作为基准,首先从右到左,找到第一个小于基准的值,然后在从左到右,找到第一个大于基准的值,两个交换, * 然后就行左右移动,到相遇为止,将相遇位置的值跟基准交换,第一轮完成。这个时候,数组一分为二,左边是小于基准的,右边是大于 * 基准的,然后两边数组继续这样比较。 */ private vo...原创 2019-08-21 13:10:08 · 117 阅读 · 0 评论 -
打印质数
/** * 打印1-100质数 * 思路:将i从2进行递增,每次处于之前所有的数,判断是否取余为0 */ private void printZhushu() { List<Integer> list = new ArrayList(); int i,j; for (i = 2 ; i &l...原创 2019-08-21 13:29:10 · 209 阅读 · 0 评论 -
冒泡排序
/** * 冒泡排序 * 比较两个相邻的元素,将值大的元素交换到右边 * * @param arr */ private void maopaoSort(int[] arr) { if (arr == null || arr.length < 2) { return; } ...原创 2019-08-21 13:54:35 · 109 阅读 · 0 评论 -
二叉树反转
private TreeNode erchashu(TreeNode root) { TreeNode temp =root.left; root.left = erchashu(root.right); root.right = erchashu(temp); return root; }原创 2019-08-21 15:09:58 · 447 阅读 · 0 评论 -
二叉树反转
TreeNode a = new TreeNode(2); a.left = new TreeNode(4); a.right = new TreeNode(6); a.left.left = new TreeNode(7); a.lef...原创 2019-08-21 16:56:57 · 141 阅读 · 0 评论