![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java算法
lilun1231
这个作者很懒,什么都没留下…
展开
-
leetcode算法题-剑指Offer篇(6)
1、删除链表的节点 1.1 题目描述: 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 1.2 题解 1.2.1 public ListNode deleteNode(ListNode head, int val) { if(head.val == val) return head.next; //如果要删除删除头结点 ListNode pre = head, cur = head.next;//定义两个指针原创 2020-08-10 22:39:33 · 98 阅读 · 0 评论 -
个人数据结构与算法学习总结——顺序二叉树、线索二叉树
顺序二叉树、线索二叉树 本总结主要是以“尚硅谷Java算法教程”的学习教程为主,加上一些个人的理解 顺序二叉树 1、概念 从数据存储来看,数组存储方式和树 的存储方式可以相互转换,即数组可 以转换成树,树也可以转换成数组, 看右面的示意图。 2、图解 3、顺序二叉树的特点 顺序二叉树通常只考虑完全二叉树 第n个元素的左子节点为 2 * n + 1 第n个元素的右子节点为 2 * n + 2 第n个元素的父节点为 (n-1) / 2 n : 表示二叉树中的第几个元素 4、代码实现 pac原创 2020-06-08 21:39:08 · 119 阅读 · 0 评论 -
个人数据结构与算法学习总结-二叉树树
树 本总结主要是以“尚硅谷Java算法教程”的学习教程为主,加上一些个人的理解 为何需要树 1、数组存储方式的分析 优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。 缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低 。 2、链式存储方式的分析 优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可, 删除效率也很好)。 缺点:在进行检索时,效率仍然较低,比如(检索某个值,需要从头节点开始遍历) 3、 树存储原创 2020-06-07 17:54:54 · 274 阅读 · 0 评论 -
个人数据结构与算法学习总结-查找算法(顺序、二分、插值、斐波那契查找)
查找算法 本总结主要是以“尚硅谷Java算法教程”的学习教程为主,加上一些个人的理解 目录查找算法顺序查找二分查找插值查找斐波那契查找 Java中常用的查找算法有四种: 1)顺序(线性)查找 2)二分查找/折半查找 3)插值查找 4)斐波那契查找 下文将对这几个算法进行总结 顺序查找 1、算法思想 顺序查找也称为线形查找,属于无序查找算法。从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,若相等则表示查找成功;若扫描结束仍没有找到关键字等于k的结点,表示查找失败。 2、图解原创 2020-06-07 16:16:29 · 275 阅读 · 0 评论 -
个人数据结构与算法学习总结-排序算法(冒泡、选择、插入、希尔、快速、归并、基数、堆排序)
排序算法 本总结主要是以“尚硅谷Java算法教程”的学习教程为主,加上一些个人的理解 目录排序算法算法的时间复杂度说明冒泡排序 排序算法(Sort Algorithm),是将一组数据,依指定的顺序进行排列的过程。 排序的分类: 1) 内部排序: 指将需要处理的所有数据都加载到内部存储器中进行排序。 2) 外部排序法: 数据量过大,无法全部加载到内存中,需要借助外部存储进行 排序。 3) 常见的排序算法分类(见下图): 4)常见的算法时间复杂度由小到大依次为:Ο(1)<Ο(log2n)<Ο(n)<Ο(nl原创 2020-06-03 22:15:54 · 386 阅读 · 0 评论 -
个人数据结构与算法学习总结-栈、实现综合计算器、递归
栈 本总结主要是以“尚硅谷Java算法教程”的学习教程为主,加上一些个人的理解 目录栈栈介绍介绍出栈和入栈的图示栈的应用场景实现栈利用栈实现综合计算器前缀、中缀、后缀表达式设计逆波兰计算器 栈介绍 介绍 栈的英文为(stack),是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。 根据栈的定义可知原创 2020-06-01 22:38:36 · 283 阅读 · 0 评论 -
个人数据结构与算法学习总结-队列、链表
队列、链表 本总结主要是以“尚硅谷Java算法教程”的学习教程为主,加上一些个人的理解 目录队列、链表队列环形队列链表单链表 队列 队列介绍 队列是个有序列表,可以用数组和链表表示 遵循先入先出原则 示意图如下: 数组模拟队列 实现功能:出队列、显示队列、查看队列头元素 代码实现: package datastructure.queue; import java.util.Scanner; public class ArrayQueueDemo { public static原创 2020-05-31 15:19:44 · 251 阅读 · 0 评论 -
个人数据结构与算法学习总结-数组与稀疏数组
数组、稀疏数组 本总结主要是以“尚硅谷Java算法教程”的学习教程为主,加上一些个人的理解 本篇主要关于数组和稀疏数组之间的装换 数组 创建一个数组用于保存棋盘信息 代码创建如上数组 // 创建一个原始的二维数组 11 * 11 // 0: 表示没有棋子, 1 表示 黑子 2 表蓝子 int[][] chessArr = new int[11][11]; chessArr[1][2] = 1; chessArr[2][3]原创 2020-05-31 12:31:37 · 143 阅读 · 0 评论