Java数组排序-插入排序

本文介绍了一种简单的排序算法——插入排序,并通过示例代码详细解释了其工作原理。该算法适用于小规模数据集,通过两层循环实现有序数组中元素的正确插入。

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

插入排序是从已经排序的数组中找到新元素的位置

两层循环:
  1 外层循环负责获取没有排序的一个元素.外循环从1开始
  2 内循环负责在已经排序的数组中给未排序元素找位置

public class InsertDemo {
	public static void main(String[] args) {
		int[] arr = new int[] { 4, 3, 2, 1 };

		int[] arr2 = getInsert(arr);
		for (int a : arr2) {
			System.out.print(a + " ");
		}
	}

	public static int[] getInsert(int[] arr3) {
		// 4,3,2,1
		// 第一次比较:i=1 j=1 3,4,2,1
		// 第二次比较:i=2 j=2 3,2,4,1
		// 			   j=1 2,3,4,1
		// 第三次比较 i=3 j=3 2,3,1,4
		// 			  j=2 2,1,3,4
		// 			  j=1 1,2,3,4
		for (int i = 1; i < arr3.length; i++) {
			for (int j = i; j > 0; j--) {
				if (arr3[j - 1] > arr3[j]) {
					int temp = arr3[j - 1];
					arr3[j - 1] = arr3[j];
					arr3[j] = temp;
				}
			}
		}
		return arr3;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值