数据结构和算法
enen199202
这个作者很懒,什么都没留下…
展开
-
归并排序
归并排序,图解,详细过程。 代码如下: [java] view plain copy package com.collonn.algorithm.sort; /** * * 经典归并排序 * */ public class MergeSort {转载 2016-04-11 15:28:46 · 240 阅读 · 1 评论 -
堆排序(Java实现)
在程序设计相关领域,堆(Heap)的概念主要涉及到两个方面: 一种数据结构,逻辑上是一颗完全二叉树,存储上是一个数组对象(二叉堆)。垃圾收集存储区,是软件系统可以编程的内存区域。 本文所说的堆,指的是前者。 堆排序的时间复杂度是O(nlgN),与快速排序达到相同的时间复杂度。但是在实际应用中,我们往往采用快速排序而不是堆排序。这是因为快速排序的一个好的实现,往往比堆排序具有更好的原创 2016-04-19 16:04:53 · 325 阅读 · 0 评论 -
java 二叉树遍历
import java.util.HashMap; import java.util.LinkedList; import java.util.Map; import java.util.Queue; import java.util.Stack; /** * * @author kerryfish * JAVA实现二叉树的先序、中序、后序、层序遍历 * 递归和非递归版本 * */转载 2016-04-19 09:30:04 · 377 阅读 · 0 评论 -
插入排序
插入排序 By Yujian 冒泡排序、选择排序、插入排转载 2016-04-11 10:17:03 · 242 阅读 · 0 评论 -
选择排序
选择排序 选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。 常用的选择排序方法有简单选择排序和堆排序。 简单选择排序 在介绍选择排序算法前,我们再回顾下冒泡算法。 冒泡算法是通过两两比较,不断交换,逐个推进的方式,来进行转载 2016-04-11 10:16:20 · 258 阅读 · 0 评论 -
冒泡排序
是不是觉得冒泡算法很简单? 是的,确实很简单,中心思想是两两交换。 那你能写出冒泡算法吗? 你能解释冒泡算法中的各层含义是什么吗? 你又能写出几种冒泡算法呢? 曾经在面试中,遇到过冒泡算法,我能模糊的写出,却纠结于参数边界值的控制。为了不再继续模糊下去,为了不至于被人鄙视----硕士毕业3年了,连这个小算法也搞不好。 于是趁此离职时转载 2016-04-11 09:23:19 · 384 阅读 · 0 评论 -
单链表
import java.util.HashMap; import java.util.Scanner; import java.util.Stack; /** * * @author kerryfish * 关于java中链表的操作 * 1. 求单链表中结点的个数: getListLength * 2. 将单链表反转: reverseList(遍历),reverseListRec(转载 2016-04-13 21:00:15 · 226 阅读 · 0 评论 -
设计包含min函数的栈
前言 这是一道经常遇见的面试题。好像网易和google都曾出过此题。这道题解法也胜多。这里给出普遍的一种解法。即增加一个辅助堆栈来存储最小值。 本系列文章均系笔者所写,难免有一些错误或者纰漏,如果小伙伴们有好的建议或者更好的算法,请不吝赐教。 正文 【题目】 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间转载 2016-06-02 18:34:06 · 219 阅读 · 0 评论