判断单链表是否有环、求环长和环入口最优算法 判断单链表是否有环是一个十分经典的算法问题,许多考试或者面试都有很大的...[作者空间]
Java集合框架源码解读(3)——LinkedHashMap 概述 LinkedHashMap是HashMap的子...[作者空间]
Java集合框架源码解读(2)——HashMap 在Java Collections Framework的体系中中...[作者空间]
Java集合框架源码解读(1)——ArrayList、LinkedList和Vector java.util.Li...[作者空间]
树的基本定义和分类 树的定义 无论是链表,栈还是队列,它们都是线性结构的,每个节点的左边最多一个节点,右边也最多一...[作者空间]
数据结构之链表 前面我们学习了三种线性结构的数据结构,动态数组,栈和队列,但是这三种数据结构其实说到底都是数组,即...[作者空间]
数据结构之栈 原理 栈是一种比较常见的数据结构,它的操作可以看做是数组的子集,因为栈只能从栈顶取元素和添加元素,并...[作者空间]
队列和循环队列 队列的操作也可以看做是数组的子集,和栈不同的是,队列是先进先出,即First in first o...[作者空间]
数据结构之数组 这个系列是在学习慕课网玩转数据结构课程的学习笔记,用JAVA语言来重新系统的整理一下数据结构的知识...[作者空间]
时间复杂度和空间复杂度 案例来自漫画算法 时间复杂度 时间复杂度是统计代码基本执行次数的,下面用生活中的4个场景来...[作者空间]
排序算法概述 网上常见的排序算法有十种:冒泡排序、快速排序、插入排序、希尔排序、选择排序、堆排序、归并排序、计数排...[作者空间]
基数排序(Radix Sort) 计数排序和桶排序都只是在研究一个关键字的排序,现在我们来讨论有多个关键字的排序问...[作者空间]
桶排序 桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。 入门案例 用一...[作者空间]
计数排序(Counting Sort) 与比较排序注重于元素之间的比较不同,计数排序专注于找准自己的位置,而不关心...[作者空间]
堆排序 动图演示 思路分析 先来了解下堆的相关概念:堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩...[作者空间]
快速排序 动图演示 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个...[作者空间]
归并排序 动图演示 思路分析 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用...[作者空间]
希尔排序 (Shell Sort) 算法原理 希尔排序算法是按其设计者希尔(Donald Shell)的名字命名,...[作者空间]
插入排序 插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑...[作者空间]
前言 自己动手实现一下各种算法,以后复习也不用到处搜索了 通俗一点 例如从小到大排序,每次假设未排序的首位为最小值...[作者空间]