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;
    	}
    }
    

    运行结果:

  • 相关阅读:
    PHP5中PDO的简单使用
    Apache中设置默认首页的方法
    PHP数组读取的循环操作
    header("Location:login.php")应该注意的几个问题
    纯JavaScript实现弹出选择第几个单选按钮
    PHP关于错误抑制符@的使用
    CSS盒子模型
    Appache中的ServerAlias
    PHP move_uploaded_file() 函数 定义和用法
    PHP ob_start() 函数介绍
  • 原文地址:https://www.cnblogs.com/shareAndStudy/p/12452508.html
Copyright © 2011-2022 走看看