算法 排序算法之插入排序

package SortArith;
/**
 * 插入排序
 * @author lwk
 * 时间复杂度O(2)
 * 稳定排序
 */
public class InsertSort {
	
	public static void main(String[] args) {
		int[] array={9,7,8,6,5,4,3,2,1};
		insertSort(array);
		for(int i=0;i<array.length;i++){
			System.out.print(array[i]);
		}
	}
	
	public static void insertSort(int[] array){
		if(array == null || array.length == 0){
			return;
		}
		//每个元素要插入时与其相邻左边元素进行比较,如果比左边元素小,则进行插入操作,插入左边
		//i=0元素为起始元素,已经放好位置,从i=1元素开始插入
		for (int i = 1; i < array.length; i++) {
			if(array[i] < array[i-1]){
				//寻找array[i]插入位置,将大于array[i]的元素分别右移一位
				int temp = array[i];//保存array[i]的值,因为在元素右移后,该值会覆盖(变化)
				int j;//声明j,下面有用
				for(j = i-1;j >= 0 && array[j] > temp;j--){
					//大于array[i]的元素元素右移
					array[j+1] = array[j];
				}
				//此时j为刚好小于array[i]的元素位置,j+1 为空出来待插入的位置
				//将待插入元素array[i]插入j+1位置
				array[j+1] = temp;
			}
		}
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值