数据结构和算法
毕业一年多,发现工作和想象的不太一样,曾经以为每天会不断的解决问题,每天都会面对新的挑战。后来发现事实并非如此,更多的时候是在拧螺丝,甚至是ctrl c/v。也许这就是工作,每个人都是一个螺丝,而不是拯救项目的英雄。渐渐的当初在ACM学习的算法也渐渐遗忘了,现在是捡起来的时候了。
gabriel1210
这个作者很懒,什么都没留下…
展开
-
基本算法-二叉树的递归遍历 java
1、定义节点 /** * @author Administrator 树的节点 */ public class TreeNode { public char value; public TreeNode left; public TreeNode right; TreeNode(char value) { this.value = value; } TreeNode(c...原创 2019-04-09 16:24:20 · 807 阅读 · 0 评论 -
基础算法-堆排序java
堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。 public class stackSort { static int[] datas = new int[] { 45, 651, 54, 8, 98, 45, 1,6, 48, 456, 1, 5615, 6 }; // 堆排序主要分为两...原创 2019-04-09 14:17:48 · 129 阅读 · 0 评论 -
基本算法-希尔排序java
希尔排序的思想比较巧妙,过程就不描述了,通过一个增量将原数据分组,分组后进行简单插入排序,使用增量的目的是为了快速移动元素,而不是一位一位的移动,因此是一种不稳定的排序方式。 这里不详述过程,只是做个笔记,毕竟这些算法思路很清楚,写了很多次,但总是的在实际动手的时候回遇到问题。于是不厌其烦的再写一次。 /** * @author Administrator 希尔排序 * */ ...原创 2019-04-09 11:23:45 · 149 阅读 · 0 评论 -
基本算法-快速排序java
快速排序平均速度是最快的一直排序,时间复杂度为O(nlog(n)),但是最坏情况下为n的平方。 /** * @author Administrator 快速排序 */ public class QuickSort { static int[] datas = new int[] { 45, 651, 54, 8, 98, 45, 6, 48, 456, 1, 5615, 6 }; ...原创 2019-04-08 10:50:07 · 106 阅读 · 0 评论 -
二叉树非递归遍历 java
1、定义遍历用到的栈 public class Stack { static List<TreeNode> list = new ArrayList<TreeNode>(); /** * 判读栈是否为空 * * @return */ public static boolean isEmpty() { return list.isEmpty...原创 2019-04-10 14:36:15 · 1070 阅读 · 0 评论