Java的插入排序

插入排序就是重复的将新的元素插入到一个已经排好序的子线性表中,直到整个线性表排好序。

package test;

public class project1 {
	 
   public static void main(String []args) {
	   int []list= {9,4,5,1,2,0,15,45,89,24,16,3,8,99,102,78};
	   insertionSort(list);
	   for(int i:list) {
		   System.out.print(i+" ");
	   }
	   
	}

	public static void insertionSort(int[] list){
		int k=0;
		int current=0;
		for(int i=1;i<list.length;i++) {
		    current=list[i];
			for( k=i-1;k>=0&&list[k]>current;k--)
					list[k+1]=list[k];
			list[k+1]=current;
		}
		
	}
}

 
 
输出结果:0 1 2 3 4 5 8 9 15 16 24 45 78 89 99 102 

该方法是用for嵌套的for循环实现的。外层循环的迭代是为了获取已经排好序的线性表,其范围从list[0]到list[i]。内层循环将list[i]插入到list[0]到list[i-1]的子线性表中。

在第k次的迭代中,为了将一个元素插入到一个大小为k的数组中,将进行k次比较来找到插入的位置,还要运行k次的移动来插入元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值