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