算法与数据结构集锦(Java)
数据结构与算法是衡量一个工程师的内功的必备知识,也是进军BAT等名企面试的必考知识。本专栏结合Java语言特征详细讲解常用的数据结构与算法、经典面试/笔试题和Java集合框架,题目范围包括但不仅限于剑指Offer、程序员面试金典、LeetCode、NewCoder中的题目。
书呆子Rico
不着急,慢慢来。
展开
-
八大排序算法实战:思想与实现
所谓排序,就是根据排序码的递增或者递减顺序把数据元素依次排列起来,使一组任意排列的元素变为一组按其排序码线性有序的元素。本文将介绍八种最为经典常用的内部排序算法的基本思想与实现,包括插入排序(直接插入排序,希尔排序)、选择排序(直接选择排序,堆排序)、交换排序(冒泡排序,快速排序)、归并排序、分配排序(基数排序),并给出各种算法的时间复杂度、空间复杂度和稳定性。原创 2017-05-25 16:14:36 · 13976 阅读 · 17 评论 -
算法设计方法:递归的内涵与经典应用
大师说:To Iterate is Human, to Recurse, Divine.毋庸置疑地,递归确实是一个奇妙的思维方式。对一些简单的递归问题,我们总是惊叹于递归描述问题和编写代码的简洁,但要想真正领悟递归的精髓、灵活地运用递归思想来解决问题却并不是一件容易的事情。本文剖析了递归的思想内涵并分析了阶乘、斐波那契数列、汉诺塔、杨辉三角的存取、字符串回文判断、字符串全排列、二分查找、树的深度求解等八个问题。原创 2017-05-13 10:54:45 · 32142 阅读 · 6 评论 -
算法实战:根据Key或Value对Map进行排序及其应用
我们知道,Map是 Java Collection Framework 的重要成员,也是我们最常用的容器类之一。Map的实现多种多样,包括HashMap、LinkedHashMap等。但是,无论实际中使用哪种实现,我们在编程过程中常常会遇到诸如根据Key或Value对Map进行排序、保持Map插入顺序等问题,本文特别针对以上几个问题给出了具体解法,并分享华为一道与我们主题极为相关的笔试题。原创 2017-05-11 18:13:19 · 9473 阅读 · 6 评论