
数据结构算法
森林屿麓
这个作者很懒,什么都没留下…
展开
-
java实现广度搜索(bfs)最短路径
import java.util.LinkedList;/** * 广度搜索,查找最小距离 */public class BFS { static int map[][] = new int[4][4]; public static void main(String[] args) { for (int i = 0; i < 4; i++) { for (int ...原创 2018-04-07 19:32:41 · 7466 阅读 · 2 评论 -
插入排序
插入排序由N-1趟排序组成,对于p=1到N-1趟,插入排序保证从位置0到位置p上的元素为已排序状态。代码: public static void insertionSort(int[] a) { int i; for (int j = 1; j < a.length; j++) { int tmp = a[j]; for (i = j; i > 0 &&am...原创 2018-04-06 10:26:25 · 184 阅读 · 0 评论 -
希尔排序
希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现。基本思想 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增...原创 2018-04-06 10:55:17 · 158 阅读 · 0 评论 -
选择排序、冒泡排序、插入排序、希尔排序、快速排序
public class Sort { /** * 冒泡排序,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,最终达到完全有序 */ public static void bubbleSort(int[] a) { for (int i = 0; i < a.length; i++) { for (int j = 0; j ...原创 2018-04-06 14:10:36 · 167 阅读 · 0 评论 -
java scanner 输入acm
一、Java之ACM注意点1. 类名称必须采用public class Main方式命名2. 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错误,所以在我看来好多OJ系统做的是非常之垃圾3. 有些OJ上的题目会直接将OI上的题目拷贝过来,所以即便是题目中有输入和输出文件,可能也不需要,因为在OJ系统中一般是采用标准输入输出,不需要文件4. 在有多行数据输入的情况下...转载 2016-10-15 15:15:05 · 1417 阅读 · 0 评论 -
双栈实现队列,双队列实现栈思路
1.两个栈实现队列用栈a,栈b实现一个队列入队,进a; 出队,判断b是否为空,如果为空,则把a栈逐个出栈入b栈,如果b不为空,直接出栈以此实现出队2.两个队列实现栈队列a,队列b实现栈出队,把a队列中的n-1个元素出队,一次入b队列,a队列出队;如再次出队,则把b队列中的n-1个元素出队,一次入a队列,b出队,以此实现出栈。 入队,进入到不为空的栈中,...原创 2018-12-22 16:49:54 · 4636 阅读 · 1 评论 -
数据结构树结构定义
树中名词解释的定义:结点:指树中的一个元素;结点的度:指结点拥有的子树的个数,二叉树的度不大于2;数的度:指树中的最大结点度数;叶子:度为0的结点,也称为终端结点;高度:叶子节点的高度为1,根节点高度最高;层:根在第一层,以此类推; 二叉树定义:由一个结点和两颗互不相交、分别称为这个根的左子树和右子树的二叉树构成。性质:二叉树的第i层上至多有2^(i...原创 2019-01-03 21:04:05 · 1433 阅读 · 0 评论 -
二叉树算法题汇总
目录二叉树的遍历前序遍历中序遍历后序遍历层次遍历基础算法求二叉树中的节点个数求二叉树的深度(高度)求二叉树第k层的节点个数求二叉树中叶子节点的个数判断两棵二叉树是否相同的树判断二叉树是不是平衡二叉树求二叉树的镜像判断两个二叉树是否互相镜像判断是否为二分查找树BST本文的实例代码基于JAVA编写首先给出节点的数据结构publi...原创 2019-05-19 12:39:59 · 11369 阅读 · 3 评论