摘要: 本文根据《大话数据结构》一书,实现了Java版的快速排序。 更多:数据结构与算法合集 基本概念 基本思想:在每轮排序中,选取一个基准元素,其他元素中比基准元素小的排到数列的一边,大的排到数列的另一边;之后对两边的数列继续进行这种排序,最终达到整体有序。 图片来自公众号:程序员小灰 实现代码 根据上述 阅读全文
posted @ 2018-09-14 17:34 华仔要长胖 阅读(735) 评论(0) 推荐(1) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。 思路 如果直接写递归函数,由于会出现很多重复计算,效率非常底,不采用。 要避免重复计算,采用从下往上计算,可以把计算过了的保存 阅读全文
posted @ 2018-09-13 20:37 华仔要长胖 阅读(2713) 评论(0) 推荐(0) 编辑
摘要: 数据结构 数据结构(1) 线性表之顺序存储结构 数据结构(2) 线性表之单链表 数据结构(3) 线性表之静态链表 数据结构(4) 线性表之循环链表 数据结构(5) 线性表之双向链表 数据结构(6) 栈的顺序与链式存储 数据结构(7) 循环队列和链队列 数据结构(8) 串的模式匹配算法(朴素、KMP、 阅读全文
posted @ 2018-09-13 16:53 华仔要长胖 阅读(1051) 评论(0) 推荐(0) 编辑
摘要: 本文根据《大话数据结构》一书,实现了Java版的冒泡排序。 更多:数据结构与算法合集 基本概念 基本思想:将相邻的元素两两比较,根据大小关系交换位置,直到完成排序。 对n个数组成的无序数列,进行n轮排序,每轮按两两比较的方法找出最小(或最大)的一个。下图表示某数列的第一轮排序。 下面为交换元素的sw 阅读全文
posted @ 2018-09-13 16:46 华仔要长胖 阅读(726) 评论(0) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。 思路 这道题较简单,自己先试着模拟一下 阅读全文
posted @ 2018-09-13 14:56 华仔要长胖 阅读(1210) 评论(0) 推荐(0) 编辑
摘要: 如题: 1) 找出数组中重复的数字 2) 不修改数组找出重复的数字 3) 二维数组中的查找 4) 替换空格 5) 从尾到头打印链表 6) 重建二叉树 7) 二叉树的下一个结点 8) 用两个栈实现队列 9) 斐波那契数列及青蛙跳台阶问题 10) 旋转数组的最小数字 11) 矩阵中的路径 12) 机器人 阅读全文
posted @ 2018-09-12 20:48 华仔要长胖 阅读(37219) 评论(0) 推荐(8) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点? 树中的结点除了有两个分别指向左右子结点的指针以外,还有一个指向父结点的指针。 思路 首先自己在草稿纸上画图,进行分析(不再展开 阅读全文
posted @ 2018-09-12 20:35 华仔要长胖 阅读(2003) 评论(1) 推荐(2) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1, 2, 4, 7, 3, 5, 6, 8}和中序遍历序列 阅读全文
posted @ 2018-09-12 16:56 华仔要长胖 阅读(1848) 评论(0) 推荐(0) 编辑
摘要: 在【Java】 大话数据结构(9) 树(二叉树、线索二叉树)一文中,已经实现了采用递归方法的前、中、后序遍历,本文补充了采用循环的实现方法、以及层序遍历并进行了一个总结。 递归实现 非递归实现(迭代) 非递归实现,需要先创建一个栈,利用其特性来进行储存和输出。 前序遍历,先输出当前点的值,一直沿着左 阅读全文
posted @ 2018-09-11 20:07 华仔要长胖 阅读(12213) 评论(1) 推荐(1) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 输入一个链表的头结点,从尾到头反过来打印出每个结点的值。结点定义如下: 思路 结点遍历顺序只能从头到尾,但是输出的顺序却为从尾到头,是典型的“后进先出”问题,这就要联想到使用栈,从而也可以联想到 阅读全文
posted @ 2018-09-10 21:03 华仔要长胖 阅读(2559) 评论(0) 推荐(2) 编辑