插入排序

本文详细介绍了插入排序的基本原理及其实现过程。插入排序是一种简单的排序算法,通过将一个待排序的元素与已排序序列中的元素进行比较并插入正确位置来完成排序。文章提供了具体的步骤解析,并附带了Java代码示例。

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

        三大基本排序算法之一,插入排序(Insertion Sort)。

        插入排序就是把一个数插入一个已排好的序列中。

前提:

        排序结果为从小到大。

插入排序的步骤:

        1、一个序列,把第一个数当成一个已排好的序列。

        2、从待排序的序列中取第一个数,与已排序序列中的数从后向前挨个比较大小,

        3、若是待排序的数比已排序的数小,把已排序的数在序列中向后移一个位置。

        4、重复第3步,继续比较下一个已排序的数与待排序的数。

        5、把待排序的数插入到空出的位置上。

        6、重复第2~5步,直到待排序序列为空。


代码实现:

	public void sort(){
		
		int[] a = {9,2,4,5,7,6,8,3,1,0};
		
		System.out.println("first:"+Arrays.toString(a));
		
		for(int i=1,num=a.length; i<num; i++)
		{
			int temp = a[i];       //记录待排序的数值
			int positon = 1;	   //记录待排序的数值应该插入的位置
			
			for(int j = i-1;j>=0;j--)
			{
				//如果待排序数比已排序的数小,已排序数向后移一位。
				if(temp < a[j]){
					a[j+1] = a[j]; //位置后移一个
					positon = j;   //把空出来的位置拿到
					
				}
			}
			a[positon] = temp; 	   //把待排序的数据插入到空出的位置上
			
		}
		System.out.println("second:"+ Arrays.toString(a));
		
	}

在网上找到一个形象的图形很有意思:


参考文章: http://bubkoo.com/2014/01/14/sort-algorithm/insertion-sort/


总结:

        插入排序在最后一个数排完之前,已排序好的序列是不固定的。

        又一次学习算法,这次收获很大。要刻意练习,才能达到优秀的程度。











评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值