算法入门之插入排序

本文介绍了插入排序的基本原理,并提供了详细的Java实现代码。通过一个简单的例子展示了如何使用插入排序算法对整数数组进行排序。

虽然很早在这里安家了,但是到现在没写过一篇博文,今决定从今天开始将开始用博文记录我的学习点滴,供自己回顾,若能给他人一点启示,那便是好事成双。今天就写一下一个算法的入门--插入排序。

伪代码:

     

for i<- 2 to length[A]
    do key <- a[i]
    j<- i-1
   //比较得到插入位置同时将前面排好序的向后移
    while j>0 and A[j] > key 
          A[j+1] <- A[j]
          j <- j-1
    A[j+1] <- key //插入


下面是Java代码实现:

public static int[] insertSortAsc(int[] arr){
		if(arr.length < 2){
			return arr;
		}
		for(int i=1; i<arr.length; i++){
			int key = arr[i];
			int j = i - 1;
			while(j>-1 && arr[j]>key){
				arr[j+1] = arr[j];
				j--;
			}
			arr[j+1] = key;
		}
		return arr;
	}

main方法中测试代码:

//随机生成一个长度为20的int类型数组
        int[] array = getRandomArray(20);
        System.out.println("未排序数组:" + Arrays.toString(array));
	insertSortAsc(array);
	System.out.println("插入排序好:" + Arrays.toString(array));


测试结果:

未排序数组:[58, 55, 93, 61, 61, 29, 68, 0, 22, 7, 88, 28, 51, 89, 9, 78, 98, 61, 20, 58]
插入排序好:[0, 7, 9, 20, 22, 28, 29, 51, 55, 58, 58, 61, 61, 61, 68, 78, 88, 89, 93, 98]


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值