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

概述

排序原理

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

代码实现

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;
            }
        }
    }

测试

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)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部