插入排序算法(java)

插入排序算法

一、基本思想

将一个数据插入到一个有序的数据中,从而产生一个新的、个数加一的有序数据。

二、时间复杂度

插入排序算法的时间复杂度是O(n^2)

三、排序过程如下

例如{32,21,12,34,9,18,11}

第一次排序:[32],21,12,34,9,18,11,35

第二次排序:[21,32],12,34,9,18,11,35

第三次排序:[12,21,32],34,9,18,11,35

第四次排序:[12,21,32,34],9,18,11,35

第五次排序:[9,12,21,32,34],18,11,35

第六次排序:[9,12,18,21,32,34],11,35

第七次排序:[9,11,12,18,21,32,34],35

第八次排序:[9,11,12,18,21,32,34,35]

四、代码实现

                int[] arr = {3,2,1,34,9,18,11,35};
		for(int i=1;i<arr.length;i++){
			int temp = arr[i];//temp代表所要插入已经排序好的有序数组的元素
			//对已经排序好的有序数组进行遍历
			for(int j=i-1;j>=0;j--){
				if(arr[j]>temp){
					arr[j+1] = arr[j];
					if(j==0){
						arr[j] = temp;
					}
				}else{
					arr[j+1] = temp;
					break;
				}
			}
		}
		System.out.println(Arrays.toString(arr));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值