插入法排序

插入法排序,插入法排序相对于选择排序和冒泡排序来说相对要难理解一些,算法也比较巧妙,直接看代码:
public static void sort(int[] m){
		for(int i=1;i<m.length;i++){
			int t=m[i];
			int j=i-1;
			while(j>=0&&m[j]>t){
				m[j+1]=m[j];//把前一个赋给后一个
				j--;
			}
			m[j+1]=t;//因为前面那有j--,所以,这里的j要加1表示当前替换的地方
		}
	}

图解:

这个图解是我当时根据自己对这个算法的理解以及在思考的时候所遇到的瓶颈所总结出来的解释,如果看不太明白,下面这是百度上的解释:

输入一个元素,检查数组列表中的每个元素,将其插入到一个已经排好序的数列中的适当位置,使数列依然有序,当最后一个元素放入合适位置时,该数组排序完毕。输入一个数,插入一个各元素已经按照升序排列的数组中,插入后使数组中元素仍然是按照升序排列的。思想:把欲插入的数与数组中各数逐个比较, 当找到第一个比插入数大的元素i时,该元素之前即为插入位置。然后从数组最后一个元素开始到该元素为止,逐个后移一个单元。最后把插入数赋予元素a[i]即可。如果被插入数比所有的元素值都小则插入最前位置。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值