算法第三章:插入排序

本文详细介绍了插入排序算法的基本原理和实现步骤。通过简单的语言解释了如何将一个无序数组逐步整理成有序数组的过程,并提供了示例代码帮助理解。

从现在开始,我会尝试用我自己的话来表达一些算法,如果说得不好,请见谅。


插入排序主要步骤分为以下几部分:

1、从第2个元素开始把元素一个一个拿出来

2、把拿出来的元素从后向前一个一个比较,如果被比较的数大于拿出来的元素,则被比较的数向后移一位

3、当拿出来的元素小于等于被比较数时,把拿出来的元素存入被比较数的下一个位置


以上就是插入排序啦,附上图片一张,并贴上wiki的链接: http://en.wikipedia.org/wiki/Insertion_sort

最后附上一张排序图(图片来自wiki):



最后把代码贴上,打完收工

public class InsertionSort {

	public static void main(String[] args) {
		int[] a = {3,5,2,6,1,8,9,45,23,87,34,65};
		for(int i:a){
			System.out.print(i+" ");
		}
		System.out.println();
		a = new InsertionSort().excute(a);
		for(int i:a){
			System.out.print(i+" ");
		}
	}
	
	public int[] excute(int[] a){
		for(int i = 1; i < a.length; i++){
			int temp = a[i];
			int j = i;
			while(j > 0 && a[j-1] > temp){
				a[j] = a[j-1];
				j--;
			}
			a[j] = temp;
		}
		return a;
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值