简述插入排序

这篇博客介绍了插入排序的工作原理,通过打扑克的例子生动地展示了如何将新元素有效地插入已排序的部分,从而实现整个序列的排序。插入排序在处理倒置数很少的数组时表现出较高的效率,只需少量交换即可完成排序。文中提供的Java代码展示了插入排序的实现过程。
摘要由CSDN通过智能技术生成

插入排序

想象一下,打扑克的时候,手里拿着 4 5 6 8,这时来了一张7,放哪?放5,6中间啊,怎么放?插进去啊!插进去后,成为 4 5 6 7 8 这就是插入排序

在这里插入图片描述

public class InsertSort {
    public static void main(String[] args) {
        int[] arr={3,4,2,1,64,7,8,5,30,57,765,-4,0,655};
        insert(arr);  
        for (int i : arr)
        {
            System.out.print(i+" ");
        }
    }
    private static void insert(int[] arr) {
        for (int i = 1; i < arr.length; i++) {
            for (int j=i; j >0 && (arr[j-1]>arr[j]); j--) { //比较arr[j]与前面所有数的大小,若arr[j]<arr[j-1],则交换
                int temp=arr[j];
                arr[j]=arr[j-1];
                arr[j-1]=temp;
            }
        }
    }
}

该方法对于倒置数很少的数组十分高效,当倒置数很少时,只需要进行少量的交换即可完成

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值