![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 67
又蠢又笨的懒羊羊程序猿
『世界上只有一种真正的英雄主义』
展开
-
Java实现堆排序及详细图解
文章目录堆排序前言实现步骤代码实现堆排序前言堆排序(HeapSort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似于完全二叉树的结构,同时满足子节点的键值总是小于(或者大于)其父节点。每个节点的值都大于或者等于其左右子节点的值,称为大顶堆;或者每个节点的值都小于或者等于其左右子节点的值,称为小顶堆。对堆中的节点按层进行编号,将这种逻辑结构映射到数组如下图所示:该数组从逻辑上讲就是一个堆结构,并且有以下特点:大顶堆:arr[i] >= arr[2i+1] &&a原创 2021-08-23 11:44:35 · 24915 阅读 · 7 评论 -
Java语言实现插值查找
插值查找前言在上一篇文章中已经将讲解过二分查找算法,而插值查找与二分查找类似,只不过是在二分查找的基础上进行优化,讲mid的值进行了一定调整优化,将mid的值修改为,该算法时间复杂度为O(log n)。优缺点优点:对于数据量较大并且关键字分布均匀的查找表来说,采用插值查找速度更加快。关键字分布不均匀的情况下,该方法不一定比二分查找好。代码实现 /** * 插值查找 * 说明:插值查找算法要求数组有序 * @param array 数组原创 2021-08-13 17:00:09 · 117 阅读 · 0 评论 -
Java语言实现二分查找(可查询重复数据)
文章目录二分查找1.前言2.算法思想3.图示4.优缺点5.代码实现标准二分查找拓展:可以查询重复值二分查找1.前言二分查找是一种查询效率非常高的查找算法,又称为折半查找。用递归思想来实现二分查找较为形象并且代码可读性强,因此本文中将介绍二分查找的思想,代码实现以及重复值查找的拓展。2.算法思想使用二分查找的前提是在一组有序的序列下进行,每次以序列的中间位置的数作为标准与带查找的数进行比较,从而调整查找方向,并且缩小查找范围,直至匹配成功。3.图示4.优缺点优点:比较次数少,查找速度快原创 2021-08-13 16:01:55 · 880 阅读 · 1 评论 -
回溯算法解决迷宫问题
文章目录前言一、回溯法二、算法应用——迷宫问题1.问题描述2.解题思路三、Java代码实现前言本文介绍一种经典算法——回溯法,可作为迷宫问题的一种解法。一、回溯法回溯是一种算法思想,用递归实现,类似于枚举的搜索尝试过程。主要思想在于搜索尝试过程中寻找问题的解,当发现不满足求解条件时,则立刻回溯返回,尝试别的解决方案。可作为一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现该选择不优或者无法达到目标,就退回一步重新进行选择,而满足回溯条件的某个状态点称为“回溯点”。二、算法应用原创 2021-08-11 16:46:45 · 4214 阅读 · 2 评论 -
递归回溯解决八皇后问题
文章目录前言八皇后问题问题解析代码实现完整代码前言八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。现代教学中,把八皇后问题当成一个经典递归算法例题。八皇后问题问题解析首先八个皇后之间需要满足:不在同原创 2021-08-13 10:47:09 · 348 阅读 · 2 评论