排序算法
BEYONDmonster
一个学习Java软件开发的小白~多多指教
展开
-
JAVA八大排序算法概述
Java八大排序算法原创 2019-09-12 16:50:48 · 146 阅读 · 0 评论 -
Java八大排序---冒泡排序
冒泡排序:(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序,则交换,使值较大的元素逐渐向后移动,就像水底的气泡逐渐向上冒。(优化)因为在排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素是否进行过交换,从而减少不必要的比较。冒泡排...原创 2019-09-12 17:39:41 · 1220 阅读 · 2 评论 -
Java八大排序---选择排序
选择排序:是从预排序的数据中,按指定的规则选出某一元素,再依规定交换位置达到排序的目的基本思想:假设一个数组大小为n的数组,第一次从arr[0]-arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]-arr[n-1]中选取最小值,与arr[1]交换,以此类推,第n-1次从arr[n-2]-arr[n-1]中选取最小值,与arr[n-2]交换,总共进行n-1次,得到一个按排序...原创 2019-09-14 09:57:20 · 123 阅读 · 0 评论 -
Java八大排序---直接插入排序
插入排序:是对于预排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的动态图解:Java代码实现:import java.util.Scanner;public class Insert_sort {//基本思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的序列的合适位置(从后向前找到合适的位置) 直到全部插入排序完为止 /* 插入排序 从第一个元素...原创 2019-09-14 10:54:46 · 190 阅读 · 0 评论 -
Java八大排序---希尔排序
直接插入排序存在的问题:当后面插入的数较小的话,前面排好序的元素后移的次数会明显的增多,对效率有影响。希尔排序:在直接插入排序的基础上进行改进,也称为缩小增量排序。基本思想:希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减少至1时,整个元素集合被分成一组,算法便终止。动态图解:Java代码实现:import...原创 2019-09-15 10:54:25 · 303 阅读 · 1 评论 -
Java八大排序---快速排序
快速排序:快速排序是对冒泡排序的一种改进。基本思想:通过一趟排序将要排序的数据分割成独立的俩部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这俩部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。动态图解:Java代码实现:import java.util.Scanner;public class Quick_sort {...原创 2019-09-15 12:27:21 · 184 阅读 · 0 评论 -
Java八大排序---堆排序
堆排序:堆排序是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。堆是一个近似完全二叉树的结构,并同时满足堆积的性质,即子节点的键值或索引总是小于(或者大于)它的父节点。堆的操作:最大堆调整:将堆末端子节点做调整,使得子节点永远小于父节点创建最大堆:将堆中的所有数据重新排序堆排序:移除位...原创 2019-09-16 09:53:48 · 179 阅读 · 0 评论 -
Java八大排序---归并排序
归并排序:归并排序是利用归并的思想实现的排序算法,该算法采用经典的分治策略(分治法是将问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。基本思想:分的阶段就是递归拆分子序列的过程,治的阶段就是将俩个有序的子序列合并成一个有序的序列。动态图解:Java代码实现:import java.util.Scanner;public class...原创 2019-09-16 10:27:09 · 281 阅读 · 1 评论 -
Java八大排序---基数排序
基数排序:基数排序属于"分配式排序",是"桶排序"的扩展,是通过键值的各个位的值,将要排序的元素分配至某些"桶"中,达到排序的作用。基数排序法属于稳定性的排序,基数排序法的是效率高的稳定性排序法。基本思想:将所有待比数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后从最低位开始,依次进行依次排序。这样从最低位排序一直到最高位排序完成以后,数列就是一个有序数列可以从高到低,...原创 2019-09-16 10:46:13 · 240 阅读 · 0 评论