java实现插入排序

本文详细介绍了如何使用插入排序算法将一个数值插入已排好序的整数数组中。通过两层for循环对比并移动元素,演示了整个过程,并附有源代码实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将一个数插入一个已经排好序的数据中,比如下面这张图
在这里插入图片描述

每一次待排序元素都跟前面以排号元素进比较,如果待排序元素小于比对元素,则交换位置

先定义一个int类型的倒序数组和用于元素交换的temp

int[] arr = new int[]{9,8,7,6,5,4,3,2,1};
int temp  = 0;

第一层for循环

		//循环遍历数组
        for (int i = 1; i < arr.length; i++) {

			//将待排序元素赋值给temp
            int value = arr[i];
			
			//此 j 用于第二层for循环
            int j = 0;
        }

第二层for循环

			//因为是从后往前比对,所以j--
            for (j = i - 1; j >= 0; j--) {

				//比较待排序值和前面已排好序的元素
                if (arr[j] > value) {

					//将大于待排序的值往前移一位
                    arr[j + 1] = arr[j];  // 数据移动

                } else {
					
					//如果条件不成立,则终止循环,执行循环外的代码
                    break;

                }

            }

二层循环结束,将待排序的值插入

arr[j + 1] = value; // 插入数据

遍历数组

        for (int s : arr) {

            System.out.print(s + "\t");

        }

结果

1	2	3	4	5	6	7	8	9	

源代码

    public static void main(String[] args) {

        int[] arr = new int[]{9,8,7,6,5,4,3,2,1};

        int temp = 0;

        for (int i = 1; i < arr.length; i++) {

            int value = arr[i];

            int j = 0;
            
            for (j = i - 1; j >= 0; j--) {

                if (arr[j] > value) {

                    arr[j + 1] = arr[j];

                } else {

                    break;

                }

            }

            arr[j + 1] = value; 

        }

        for (int s : arr) {

            System.out.print(s + "\t");

        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值