Java中八大排序算法是什么
导读:本文共5584字符,通常情况下阅读需要19分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 一、直接插入排序基本思想:将新的数据插入已经排好的数据列中。将第一个和第二个数排序,构成有序数列然后将第三个数插进去,构成新的有序数列,后面的数重复这个步骤算法描述1、设定插入的次数,即是循环次数,for(int i=1;i<length;i++),1个数的那次不用插入。2、设定插入的数和得到的已经排好的序列的最后一个数,insertNum和j=i-1。3... ...
目录
(为您整理了一些要点),点击可以直达。基本思想:
将新的数据插入已经排好的数据列中。
将第一个和第二个数排序,构成有序数列
然后将第三个数插进去,构成新的有序数列,后面的数重复这个步骤
算法描述
1、设定插入的次数,即是循环次数,for(int i=1;i<length;i++),1个数的那次不用插入。
2、设定插入的数和得到的已经排好的序列的最后一个数,insertNum和j=i-1。
3、从最后一个数向前开始循环,如果插入数小于当前数就将当前数向前移动一位
4、将当前位置放置到空的位置,即j+1。
代码实现
基本思想:
对于直接插入的数,数据量巨大:
1.将数的个数设置为n,取奇数k = n/2,将下标的差值k的数分为一组,构成有序数列。
2.再取k = k/2,将下标差值为k的数构成一组,构成有序数列,
3.重复第二步,直到k=1执行简单的插入排序
算法描述
1.首先确定分组的数字
2.然后对组中的数字进行插入排序
3.然后将length/2,重复1,2步骤。直到length=0为止。
代码实现
基本思想:
常用于取序列数中最大最小的几棵树
(如果每次比较都交换,那么就是交换排序;如果每次比较完一个循环再交换,就是简单选择排序。)
1.遍历整个序列,将最小的数放在最前面
2.遍历剩余的序列,将最小的数字放在最前面
3.重复步骤2,知道剩余最后一个数字。
算法描述
1.首先确定循环次数,并且记住当前的位置和当前数字
2.将当前位置后面的所有数字和当前位置的数字作比较,小数赋值给key,并记住小值的位置
3.比对完成后,将最小的值和第一个数的值交换
4.重复2,3步骤
代码实现
基本思想:
对简单选择排序的优化
1.将序列构建为大顶堆
2.将根节点与最后一个节点兑换,然后断开最后一个节点
3.重复一二步骤,直到所有节点断开
代码实现:
基本思想
1.将序列中所有的元素两两比较
2.将剩余序列的所有元素两两比较,将最大的放到最后面
3.重复第二步,知道最后一个数
算法描述
1.设置循环次数
2.设置比较的位数和结束的位数
3.两两比较,将最小的放到前面去
4.重复2,3步骤,直到循环结束
代码实现
基本思想
要求时间最快
1.选择第一个数作为P,小于P的放左边,大于p的放右边
2.递归将p的左边和右边的数按照步骤一进行,直到不能递归
代码实现
基本思想
速度仅次于快排,内存少的时候使用,可以进行并行运算的时候使用。
1.选择相邻两个数组成的有序序列
2.选择相邻的两个有序序列组成的一个有序序列
3.重复步骤二,直到组成一个有序序列
基本思想
用于大量数,很长数进行排列
1.将所有的数的个数取出来,按照个位数排序,构成序列
2.将新构成的所有数的十位数取出,按照十位数进行排序
代码实现
Java中八大排序算法是什么的详细内容,希望对您有所帮助,信息来源于网络。