用JAVA编写直接插入排序方法

本文介绍了使用JAVA编程实现直接插入排序的方法,详细讲解了排序过程,并提供了程序源码及运行结果。该算法时间复杂度为O(n^2),空间复杂度为O(1),属于稳定的排序算法。
摘要由CSDN通过智能技术生成

用JAVA编写直接插入排序方法

一、内容:

用直接插入排序方法对数组{1 2 5 6 4 24 52 87 62 51 25 65 45}进行排序,从第一个元素开始依次向已排序列进行插入,原理如下:
在这里插入图片描述

二、程序源码:

public static void main(String[] args) {
		
		//初始化数组
		int[] arr=new int[] {49, 38, 65, 97, 76, 13, 27, 49, 10, 61}; 
		System.out.print("数组初始顺序:");
		//遍历原数组
		for(int k=0;k<arr.length;k++) {
			System.out.print(arr[k]+" ");
		}
		System.out.println();
		for(int i=0;i<arr.length;i++) { //排序趟数
			
			//此处if-else只是为了输出结果整洁
			if(i>=0&&i<9) {
				System.out.print("第"+0+(i+1)+"个元素:");
			}else {
				System.out.print("第"+(i+1)+"个元素:");
			}
			
			for(int j=0;j<i;j++) {     //遍历要排的第i个元素前,已排好的序列
				if(arr[i]<=arr[j]) {    //将要排序元素插入到第j的位置
					int temp = arr[i];
					for(int k=i;k>j;k--) {
						arr[k]=arr[k-1]; //依次后移要插入位置后,已排好的序列
					}
					arr[j]=temp;
					break;
				}
			}
			//遍历每个元素插入后的数组排序
			for(int k=0;k<arr.length;k++) {
				System.out.print(arr[k]+" ");
			}
			System.out.println();
		}
		
	}

三、运行结果:

数组初始顺序:49 38 65 97 76 13 27 49 10 61 
第01个元素:49 38 65 97 76 13 27 49 10 61 
第02个元素:38 49 65 97 76 13 27 49 10 61 
第03个元素:38 49 65 97 76 13 27 49 10 61 
第04个元素:38 49 65 97 76 13 27 49 10 61 
第05个元素:38 49 65 76 97 13 27 49 10 61 
第06个元素:13 38 49 65 76 97 27 49 10 61 
第07个元素:13 27 38 49 65 76 97 49 10 61 
第08个元素:13 27 38 49 49 65 76 97 10 61 
第09个元素:10 13 27 38 49 49 65 76 97 61 
第10个元素:10 13 27 38 49 49 61 65 76 97 

四、算法分析:

时间复杂度:O(n^2)
空间复杂度:O(1)
稳定性:稳定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值