首页 > 编程语言 > 详细

java方式实现插入排序

时间:2020-03-09 23:57:03      阅读:114      评论:0      收藏:0      [点我收藏+]

一、基本思想

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

      

二、实现步骤

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

三、图解

技术分享图片技术分享图片

四、代码实现

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方式实现插入排序

原文:https://www.cnblogs.com/shareAndStudy/p/12452508.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!