一、基本思想

  通过构建有序序列,从前往后扫描未排序序列,依此取出未排序序列元素,然后从后往前扫描有序序列,找到相应位置并插入。该算法一个进行n-1趟插入,每一趟插入要进行n-k(k为第k趟插入)次比较,所有插入排序的时间复杂度为O(n2),空间复杂度为O(1).

      

二、实现步骤

  1. 首先将待排序序列的第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
  2. 从头到尾依次扫描未排序序列,将扫描到的每一个元素插入到有序序列相应的位置。

三、图解

java方式实现插入排序java方式实现插入排序

四、代码实现

public class JavaSort {
	public static void main(String[] args) {
		int a [] =new int []{1,5,4,10,6,29,5,20};
		System.out.println("排序前的数组:"+Arrays.toString(a));
		insertSort(a);
		System.out.println("排序后的数组:"+Arrays.toString(a));
	}
	


	/**
	 * 
	 * @param ary 要排序数组
	 * @return  已排序的数组
	 */
	
	public static int [] insertSort(int [] ary) {
		for (int i = 1; i < ary.length; i++) {
			int j=i;//j为要插入元素下标
			int temp=ary[i];//暂存要插入的元素
			while(j>0&&ary[j-1]>temp) {//将要插入元素与已排序的数组元素进行比较,找到要插入的位置
				ary[j]=ary[j-1];
				j--;
			}
			ary[j]=temp;//插入要插入的元素
	
			
		}
		return ary;
	}
}

运行结果:

java方式实现插入排序

 

 

java方式实现插入排序

java方式实现插入排序

相关文章:

  • 2022-12-23
  • 2021-08-18
  • 2021-08-08
  • 2021-07-07
  • 2021-07-17
  • 2021-04-16
猜你喜欢
  • 2021-09-18
  • 2021-12-25
  • 2022-03-09
  • 2021-10-20
  • 2022-12-23
相关资源
相似解决方案