zoukankan      html  css  js  c++  java
  • java方式实现插入排序

    一、基本思想

      通过构建有序序列,从前往后扫描未排序序列,依此取出未排序序列元素,然后从后往前扫描有序序列,找到相应位置并插入。该算法一个进行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;
    	}
    }
    

    运行结果:

  • 相关阅读:
    Excel如何关闭进程
    Excel_To_DataTable
    将本地项目上传到Github
    对于session,request,cookie的理解
    static的使用
    Java事件监听的四种实现方式
    静态网页和动态网页
    ps -ef|grep详解
    linux ls -l 详解
    PKU2418_树种统计(map应用||Trie树)
  • 原文地址:https://www.cnblogs.com/shareAndStudy/p/12452508.html
Copyright © 2011-2022 走看看