Java学习--排序算法之插入法排序

算法策略:按顺序读入数组内的元素,从后往前的与已有元素比较大小,插入到前一位比自己小并且后一位比自己小的位置。

数据结构:常量、变量和数组;

控制结构:顺序结构、有界循环结构和条件循环结构。

算法流程图

程序设计代码

public class Sort {

	public static void main(String[] args) {
// TODO Auto-generated method stub
//建立一个数组
		int[] array = {10,12,58,61,16,15,25,36,37,38,48,59,68,69,78,1};
//建立一重循环,可以从头到尾去遍历每一个元素
		for (int i = 1; i < array.length;i++)
		{
//将当前的元素的值赋值给key,记录当地元素的值,以便与前边的元素进行比较大小
			int key = array[i];
//定义当前元素下标的前一位元素的下标
			int j = i - 1;
//建立循环,比较当前元素与前边元素的值
			while(j>=0 && array[j]>key)
			{
//因为当前元素比前一位元素小,所以把前边一位元素的值赋予后边一位,即是将该元素的位置后移一位
				array[j+1] = array[j];
//将下标数字减一,以便比较当前元素和前边两位的大小
				j--;
			}
//当前元素比前边元素大,跳出循环,将当前元素的值赋值给该位置的元素,即是将该元素安插在当前位置
			array[j+1] = key;
		}
//遍历数组,输出数组各元素
		for(int i = 0;i<array.length;i++)
		{
			System.out.print(array[i] + " ");
		}
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值