![](https://img-blog.csdnimg.cn/c3496ca35f0d4be9a0c8c6056e9e3e43.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数组的八个基本排序算法demo
对于数组理论知识的应用拓展,主要内容为 数组经典八大排序的示例小demo
兔C
这个作者很懒,什么都没留下…
展开
-
(兔C残篇)数组的堆排序学习笔记
堆排序是利用堆数据结构设计的一种排序算法,堆排序也是一种选择排序。堆排序的思想是:将待排序列构造成一个大顶堆,此时,整个序列整个序列的最大值就是大顶堆的根节点将其与末尾元素进行交换,此时末尾就为最大值然后将剩余n-1个元素重新构成一个堆,这样会得到n个元素的最小值如此反复执行,便能得到一个有序的序列//CODE实现过程import java.util.Arrays;public class ArrayResult { public static void main(Strin原创 2022-03-02 00:32:43 · 381 阅读 · 0 评论 -
(兔C残篇)数组的基数排序学习笔记
基数排序不同于之前学习过的各类排序,基数排序是通过不断的分配和收集来实现排序的,不需要关键字比较大小的概念。//code实现过程import java.util.Arrays;public class ResultArray{ public static void main(String[] args){ //基数排序:通过分配在收集的方式进行排序 int arr[] = {10,40,5,6,30,200,178,80,90,26}; //确定排序轮次,通过数组元素的最大位数来确定原创 2022-03-01 22:47:06 · 82 阅读 · 0 评论 -
(兔C残篇)归并排序的代码实现和简单讲解
原理:假设初始序列有N个记录,则可看成是N个有序的子序列,每个子序列的长度为1,然后两两归并,得到N分之2个长度为2或1的有序子序列。再两两归并。。。如此重复,直至得到一个长度为N的有序序列为止,这种排序方法称为两路归并排序。下面开始代码实现import java.util.Arrays;public class ArrayValueSort{ // 这里我们先进行归并的操作,然后在进行拆分的操作,分为两个demo进行 public static void main(String[] args)原创 2022-02-27 00:20:25 · 77 阅读 · 0 评论 -
(兔C残篇)快速排序的代码实现与讲解
今天周三,这篇博文讲解数组八个基本排序的快速排序。文章目录1.快速排序的理论概念2. 举例讲解3. 代码实现1.快速排序的理论概念快速排序的思想在于分而治之。先进行元素大小的比较,然后进行分区也就是在排序开始时,先取出一个数,把这个数作为基数,然后进行分区,分区也就是说和这个基数进行大小的比较,比基数大的数或者是等于它的数,全部放到它的右边。然后小于基数的数,全部放到基数的左边。然后在对左右区间的数,重复上一步,直到区间只有一个数。2. 举例讲解挖坑填数,此时有一个数组,定义为:int原创 2022-02-23 18:44:37 · 62 阅读 · 0 评论 -
(兔C残篇)希尔排序的代码实现与讲解
文章目录1. 概念1.1 傻瓜式指南1.2 举例说明2. 过程推导第一步2.1 直接插入排序的复习2.2 第一步,初改造1. 概念希尔排序 又称缩小增量排序。是对直接插入排序的一种优化。它的基本思想是:先将原表按增量 ht 进行分解,每个子文件按照直接插入法排序。同样,用下一个增量继续 ht /2 将文件再分为子文件,再按照直接插入法进行排序。直到 ht = 1 时,整个文件便排好序。其关键在于,选择好适量的增量,例如 9 - 3 ,通过三重循环来实现。1.1 傻瓜式指南理解了吗?不理解原创 2022-02-21 23:39:47 · 562 阅读 · 0 评论 -
(兔C残篇)直接插入排序的实现与讲解
文章目录1.概述2. code 编写3. 数组下标越界异常4. 问题的分析与排查5. code的二次改造6. 改造效果图7. 第二种写法: 两层for嵌套8. 冗余代码抽取1.概述直接插入排序方式是一种最简单的排序方法:他的基本操作是将一个记录插入到一个长度为m的有序列表中,使之仍保持有序。例如:有这样一个数组 int arr[] = {50,10,20,30,60,70,40,80,90};其中的元素为:[50,10,20,30,60,70,40,80,90]那直接插入的排序方式就会把第一个元素原创 2022-02-20 15:20:01 · 590 阅读 · 0 评论 -
(兔C残篇)选择排序的代码实现与图文讲解
文章目录1. 排序过程图解2.选择排序的原理3. code4. 总结1. 排序过程图解2.选择排序的原理从最小索引处开始,依次和后面的元素进行比较,得出的较小元素往前放置,经过排序轮次后,较小的元素在数组的前面。规律:元素数量 -1 = 比较的轮数而每轮比较次数都比上一轮次的比较少一次3. codepublic class ReturnIndex{ public static void main(String[] args){ int arr[] ={10,55,33,44,99,2原创 2022-02-19 22:27:59 · 170 阅读 · 0 评论 -
(兔C残篇)冒泡排序的代码实现与图文讲解
文章目录1. 图片理解2. 文字叙述3. code实现4. 总结1. 图片理解2. 文字叙述经过上述图片的描绘,我们可得知:总比较轮数:需要比较的轮数,看其数组的长度,也就是有多少个元素值,两两进行比较,arr.length-1 = 需要比较轮数每轮的元素比较次数:知道了比较轮数,那我每轮需要比较多少次? 这是个问题,每轮需要比较的次数,我们可以借助上述图片进行理解,我们看到第一轮的排序之后,99已经移动到了最后位置,第二轮比较的时候,也没有把99拿出来进行比较。那第三轮的时候也同样,55在第原创 2022-02-19 20:40:50 · 176 阅读 · 0 评论 -
(兔C残篇)普通查找和二分查找的实现方式和区别
我们先来看一下普通查找的实现方式普通查找查找出数组存储的元素内容 并返回该元素的下标,往常我们会写上一个普通的查找方法public class ReturnIndex{public static void main(String[] args){//开始定义数组,把图片上的元素值都添进去int arr[] = {10,15,25,45,75,105};//然后定义一个方法,返回值就是被返回元素的下标,参数为上面的数组,和想查找的元素值int index = returnIndexN.原创 2022-02-19 18:16:15 · 507 阅读 · 0 评论