直接插入排序

package insertsort;

/**
 * 直接插入排序
 * @author Administrator
 *
 *设数组为a[0…n-1]。
 *1初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=1
 *2.将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。
 *3.i++并重复第二步直到i==n-1。排序完成。
 */
public class DirectInsertSort 
{
	
	public void Sort(int a[])
	{
		int t;
		 for(int i=0;i<a.length;i++)
		 {
			 t=a[i];    //将待排序的元素a[i]赋给t
			 
			 for(int j = 0;j < i;j++)
			 {
				 if(t < a[j]) 	//在前面的排序区中找第一个比t小的数
				 {
					 for(int k = i - 1; k >= j; k--) //将比a[i]大的数据向后移  
					 {
						 a[k + 1] = a[k];	
					 }
					 
					 a[j] = t;				//将a[i]放到正确位置上
					 
					 break;
				 }
			 }
			 
		 }
		 
		 for(int i = 0;i<a.length;i++)
		 {
			 System.out.print(" " + a[i]);
		 }
	}
	
	
	

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值