![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
LeiLecc
这个作者很懒,什么都没留下…
展开
-
归并排序算法
一、基本思想归并排序是利用归并的思想实现排序的方法,该算法采用经典的分治策略1.分:即将问题分成一些小问题 分阶段可以理解为递归拆分子序列的过程2.治:将分的阶段得到的各答案修补在一起二、算法分析把长度为n的输入序列分成两个长度为n/2的子序列;对这两个子序列分别采用归并排序;将两个排序好的子序列合并成一个最终的排序序列。合并次数为:n - 1 所以时间复杂度为o(n) 线性三、画图分析四、代码实现public class MergeSort{ public static void原创 2021-04-09 11:52:13 · 204 阅读 · 2 评论 -
基数排序算法
基数排序属于"分配式排序",又称"桶子法"或bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些桶中,达到排序的目的基数排序RadixSort是桶排序的扩展首先我们用图片来简单描述一下基数排序的过程:基数排序基本思想:将所有待比较数值统一位同样的数位长度,数位较短的数前面补零,然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列基数排序说明:1.基数排序是对传统桶排序的扩展,速度很快2.基数排序是经典的空间换时间原创 2021-04-02 15:57:10 · 124 阅读 · 0 评论 -
冒泡排序算法
//冒泡排序 平均时间复杂度o(n^2)//思路://将待排序序列从前向后依次比较,若发现逆序则交换//优化://若其中某一趟排序没有发生交换,则说明排序完成,直接退出即可//下面的内容先通过两次简单的推导,最后得出最终的冒泡排序算法//本人第一次写CSDN文章 有不对的地方还请告知 谢谢public class BubbleSort{ public static void main(String[] args){ int[] arr = {2,3,1,123,41,13,123,4}原创 2021-03-21 10:42:14 · 125 阅读 · 2 评论 -
希尔排序算法
//希尔排序是把记录下标的一定增量分组,对每组使用直接插入算法(移位式),随着增量的减小,每组包含的关键字越来越多//当增量减至1时,整个数组恰被分成一组,算法终止//因为这里内部用了插入排序,我再将插入排序的思想放在下面,具体//插入排序的基本思想://把n个待排序的元素看成一个有序表,一个无序表,开始的时候,有序表只包含n-1个元素,排序过程中每次从无序表中取第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将他插入到有序表的合适位置//交换式希尔排序 内部用来冒泡排序方法//具体看原创 2021-03-26 20:28:52 · 746 阅读 · 0 评论 -
快速排序算法
//快速排序是对冒泡排序的一种改进//基本思想://通过一趟排序,将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据要小//然后按照此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据都变的有序import java.util.Arrays;public class QuickSort{ public static void main(String[] args){ int[] arr = {-9, 78, 0, 23, -567, 70原创 2021-03-24 12:08:04 · 123 阅读 · 2 评论 -
选择排序算法
//按照前面的风格,这里依然是先推导最开始的几轮,再总结出最终的算法//选择排序思想://第一次从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次交换,最终得到一个从小到大的序列//注意://过程中不是每一次都交换,只有找到最小值之后才进行交换//说明://1.选择排序一原创 2021-03-23 13:44:38 · 295 阅读 · 0 评论 -
插入排序算法
//插入排序算法基本思想://把n个待排序的元素看成一个有序表一个无序表,开始的时候有序表只包含一个元素,无序表包含n - 1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将他插入到有序表的合适位置public class InsertSort{ public static void main(String[] args){ int[] arr = {1, 213, 123, 12, 12, 32231, 241}; insertSort(arr原创 2021-03-23 13:07:33 · 81 阅读 · 0 评论