我是靠谱客的博主 清爽冰棍,这篇文章主要介绍排序算法——直接插入排序(insertSort),现在分享给大家,希望可以做个参考。

排序原理

  1.把所有的元素分为两组,已经排序的和未排序的;
  2.找到未排序的组中的第一个元素,向已经排序的组中进行插入;
  3.倒叙遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小于等于待插入元素,那么就把待插入元素放到这个位置,其他的元素向后移动一位;
在这里插入图片描述

代码实现

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static void insertSort(double a[]){ //i为待插入元素的索引 for(int i=1;i<a.length;i++){ for(int j=i;j>0;j--){ //比较索引j处的值和j-1处的值,如果j-1处的值比j的值大,那么交换数据,如果不大,则插入结束 退出循环 if(a[j-1]>a[j]) { double temp=a[j-1]; a[j-1]=a[j]; a[j]=temp; } else break; } } }

测试

复制代码
1
2
3
4
5
6
7
public static void main(String[] args) { double arr[]={4,5,3,6,11,14,1,8}; insertSort(arr); System.out.println(Arrays.toString(arr)); //[1.0, 3.0, 4.0, 5.0, 6.0, 8.0, 11.0, 14.0] }

算法分析

在这里插入图片描述
  比较是从有序序列的末尾开始,也就是想要插入的元素和已经有序的最大者开始比起,如果比它大则直接插入在其后面,否则一直往前找直到找到它该插入的位置。如果碰见一个和插入元素相等的,那么把要插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的

最后

以上就是清爽冰棍最近收集整理的关于排序算法——直接插入排序(insertSort)的全部内容,更多相关排序算法——直接插入排序(insertSort)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部