必会排序算法(一)——直接插入排序(Java)

本文介绍了直接插入排序的基本原理,通过图解和Java代码详细展示了如何将一个元素按照大小插入到已排序的序列中。代码实现部分提供了一个完整的InsertSort类,包括一个可以根据升序或降序需求进行排序的方法。
摘要由CSDN通过智能技术生成

直接插入排序

每趟将一个元素,按照其大小,插入到前面已排序的子序列,以此重复

插入排序

代码实现

public class InsertSort {
    private int[] keys = {21,43,65,33,56,43,34};

    public static void main(String[] args) {
        InsertSort insertSort = new InsertSort();
        int[] sort = insertSort.sort(insertSort.keys, true);
        for (int i = 0; i < 7; i++) {
            System.out.println(sort[i]);
        }
    }
    //利用布尔值asc设定升序降序
    public int[] sort(int[] keys,boolean asc){
        for (int i = 1; i < keys.length; i++) {
            //待插入 值
            int x = keys[i],j;
            //同有序序列依次比较
            for (j = i-1; j >=0 && (asc?x<keys[j]:x>keys[j]); j--) {
                keys[j+1] = keys[j];
            }
            keys[j+1] = x;
        }
        return keys;
    }
}    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值