![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 81
m0_58680805
这个作者很懒,什么都没留下…
展开
-
八大算法之堆排序(非常重要)
在学习堆排序之前,我们需要了解一下下完全二叉树一、完全二叉树完全二叉树是一种特殊的二叉树。从上到下,从左到右,每一层的节点都是满的,最下边一层所有的节点都是连续集中在最左边二、堆堆排序分为两种,分别是大顶堆和小顶堆。大顶堆:在完全二叉树的基础上,每个结点的值都大于或等于其左右孩子结点的值小顶堆:在完全二叉树的基础上,每个结点的值都小于或等于其左右孩子结点的值堆排序需要知道的一个非常重要的点 就是父子结点的关系基本思想1):将带排序的序列构造成一个大顶堆,根据大顶.原创 2022-04-19 12:00:00 · 120 阅读 · 0 评论 -
八大算法之基数/桶排序(非常重要)
基本思想基数排序是桶排序的扩展,他的基本思想是:将整数按位切割成不同的数字,然后按每个位数分别比较。具体做法是:将所有待比较数值统一为同样的位数长度,数位较短的数前边补零。然后,从最低位开始,依次进行一次排序,这样从最低位排序一直到最高位排序完成后,就变成一个有序数列。图解动态图代码首先我们先一轮一轮的看怎么操作第一轮:第二轮:第三轮总代码:public class TongSort1 { public static void..原创 2022-04-19 10:00:00 · 92 阅读 · 0 评论 -
八大排序之归并排序(非常重要)
目录基本思想图解流程分析分:合并:代码基本思想归并排序就是递归得将原始数组递归对半分隔,直到不能再分(只剩下一个元素)后,开始从最小的数组向上归并排序。将一个数组拆分为两个,从中间点拆开,通过递归操作来实现一层一层拆分。 从左右数组中选择小的元素放入到临时空间,并移动下标到下一位置。 重复步骤2直到某一下标达到尾部。 将另一序列剩下的所有元素依次放入临时空间。 将临时空间的数据依次放入原数据数组。图解动态图流程分析分:分解的时候我..原创 2022-04-18 23:28:54 · 136 阅读 · 0 评论 -
八大排序之希尔排序(非常重要)
希尔排序介绍希尔排序也是一种插入排序。它是简单插入排序进过改进之后的一个更高效的版本,也成为了缩小增量排序希尔排序的基本思想希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量主键递减,每组包含的关键词也来越多,当增量减至1时,整个文件恰被分成一组,算法终止。代码实现package QCBYSuanF;import java.util.Arrays;//运用到了插入排序public class ShellSort { publi..原创 2022-04-18 23:09:58 · 131 阅读 · 0 评论 -
八大排序之插入排序(非常重要)
基本原理它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。实现的过程中我们认为数组第一个数已经排好顺序 后面待排序的数插入到前面已经排到的数组中然后就有两个数排好序了,我们再把第三个数插入到前面两个已经排好序的数组中,这样就有三个数排好序了,然后接下来的数依次这样操作图解代码实现import java.util.Arrays;.原创 2022-04-15 10:00:00 · 241 阅读 · 0 评论 -
八大排序之选择排序(非常重要)
基本操作:第一次从arr[0到]arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]到arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]到arr[n-1]中选取最小值,与arr[2]交换,…,第i次从arr[i-1]arr[n-1]中选取最小值,与arr[i-1]交换,…, 第n-1次从arr[n-2]~arr[n-1]中选取最小值,与arr[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列。import java.util.Arra原创 2022-04-14 20:00:00 · 224 阅读 · 0 评论 -
八大排序之冒泡排序(非常重要)
冒泡排序的基本原理对存放原始数组的数据,按照从前往后的方向进行多次扫描,每次扫描都称为一趟。当发现相邻两个数据的大小次序不符合时,即将这两个数据进行互换,如果从小大小排序,这时较小的数据就会逐个往前移动,好像气泡网上漂浮一样。冒泡排序的特点:升序排序当中每一轮比较会把最大的数沉到最底(这里以从小到大为例),所有相互比较的次数每一轮会比前一轮少一次。代码import java.util.Arrays;//冒泡public class Test01 { public stat原创 2022-04-14 15:04:50 · 250 阅读 · 0 评论 -
八大排序之快速排序(非常重要)
目录快速排序(将整个递归分为两步,第一步是基本算法,第二步是递归)基本思想算法描述图解代码快速排序(将整个递归分为两步,第一步是基本算法,第二步是递归)基本思想快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。算法描述快速排序使用分治法来把一个串(名单)分为两个子串(子列表)具体算法描述如下:会把数组当中的一个数当成基准数. 一般会把数组中.原创 2022-04-13 23:36:12 · 97 阅读 · 0 评论