![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
青春季风暴
aiIT
展开
-
查找单链表中的倒数第k个结点
问题:编写代码,查找单链表中的倒数第K个节点思路分析:1.编写一个方法,接收head节点,同时接收一个index2. index表示是倒数第index个节点3.先把链表从头到尾遍历,得到链表的总的长度getLength4. 得到size 后,我们从链表的第一个开始遍历(size-index)个, 就可以得到5.如果找到了,则返回该节点,否则返回null代码: public static HeroNode findIastIndexNode(HeroNode h..原创 2020-10-14 19:50:37 · 313 阅读 · 0 评论 -
数据结构与算法-链表
一、链表介绍:链表是有序列表,存储结构如下:总结如下:1)链表是以节点的方式来存储,是链式存储2)每个节点包含data域,next域:指向下一个节点.3)如图:发现链表的各个节点不一定是连续存储.4)链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定单链表(带头结点)逻辑结构示意图如下:二、应用实例使用带head头的单向链表实现–水浒英雄排行榜管理完成对英雄人物的增删改查操作1)第一种方法在添加英雄时,直接添加到链表的尾部思路分析示意图:..原创 2020-10-14 19:41:18 · 1746 阅读 · 0 评论 -
数据结构与算法-队列
队列介绍1、队列是一个有序列表,可以用数组或是链表来实现2、遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出示意图:(使用数组模拟队列示意图)数组模拟队列队列本身是有序列表,如使用数组的结构来存储队列的数据结构,则队列数组的生命如下图,其中maxSize是该队列的最大容量。因为队列的输出、输入是分别从前后端来处理的,因此需要两个变量front及rear分别记录队列前后端的下标,front会随着数据输出而变化,而rear则是随着数据输入而改变,如图所...原创 2020-09-21 21:19:00 · 205 阅读 · 0 评论 -
数据结构与算法-稀疏数组
当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:1) 记录数组一共有几行几列,有多少个不同的值2) 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模稀疏数组举例说明:转换前的二维数组:转换后的稀疏数组:稀疏数组的应用实例:1)使用稀疏数组,来保留类似前面的二维数组(棋盘、地图等等)2)把稀疏数组存盘,并且可以从新恢复原来的二维数组数3)整体思路分析...原创 2020-09-21 20:52:25 · 177 阅读 · 0 评论 -
五大常用算法:分治、动态规划、贪心、回溯和分支界定
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题所需的计...转载 2018-10-14 21:32:06 · 299 阅读 · 0 评论 -
排序算法
目录冒泡排序 鸡尾酒排序 选择排序 插入排序 二分插入排序 希尔排序 归并排序 堆排序 快速排序 我们通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。 排序算法大体可分为两种: 一种是比较排序,时间复杂度O(nlogn) ~ O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序...转载 2018-10-27 20:21:25 · 152 阅读 · 0 评论