没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
常见排序总结
插入排序
直接插入排序
思想:想象打牌,摸第一张,它是有序的,那如果我们接着摸牌,是不是都要与已经排好序
的牌每张进行比较,找插入的位置,所以我们可以把一串没有序的数字先分为有序和无序部
分,在从无序的第一个开始来进行比较插入。
示例:
分析过程:
代码实现:
import java.util.Arrays;
public class Zhijie {
public static void main(String[] args) {
int[] array = new int[]{27,15,19,18,28};
System.out.println("原数组顺序:" + Arrays.toString(array));
Zhijiesort(array);
System.out.println("直接插入排序后的:" +Arrays.toString(array));
}
public static void Zhijiesort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int tmp = arr[i];
int j = i - 1;
for (; j >= 0; j--) {
if(tmp < arr[j]) {
arr[j + 1] = arr[j];
}
else {
break;
}
}
arr[j + 1] = tmp;
}
}
}
复杂度分析:
时间复杂度:O(N^2)
空间复杂度:O(1)
稳定性:稳定(当我们 tmp<=arr[j]就会出现不稳定,所以总结,如果一个排序是稳定的,那
么它可以变成不稳定的,如果它本身就是不稳定的,那么就一直是不稳定的,不会变)
希尔排序(缩小增量排序)
思想:(插入排序的改良版)
选定一个增长量 h ,按照增长量 h 作为数据分组的依据,对数据进行分组,对分好的每一组
数据在进行插入排序,递减增长量,直到它为 1,就完成了排序。
示例:
分析过程:
关键问题:如何分组?如何每个组都使用插入排序?
上面的数据是 10 个,我们一开始分为了 5 组,2 组,1 组,到最后一组的时候在进行一次
插入排序就已经有序了,所以我们可以设一个组的变量 gap,让它一开始就等于我们的数组
长度,然后在逐步递减缩减分组,gap = gap / 2;因为我们是不断的分下去,直到分为一组,
所以要使用循环,而循环条件也急就是 while(gap > 1)时候,当它 = 1 就证明只需要整体进
行一次插入排序就有序了。
代码实现:
// 2.
希尔排序
public static void Xier(int[] arr) {
int gap = arr.length;
while (gap > 1) {
shellsort(arr,gap);
gap /= 2;
}
//
最后一组需要在整体进行插入排序
shellsort(arr,gap);
}
public static void shellsort(int[] arr,int gap) {
//
每组进行插入排序
for (int i = gap; i < arr.length; i++) {
int tmp = arr[i];
int j = i - gap;
for (; j >= 0 ; j-=gap) {
if(tmp < arr[j]) {
arr[j + gap] = arr[j];
}
else {
break;
}
}
arr[j + gap] = tmp;
}
}
剩余29页未读,继续阅读
资源评论
小哈不会玩
- 粉丝: 14
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功