zoukankan      html  css  js  c++  java
  • 排序02插入排序

    一)定义

    直接插入排序( straight insertion sort )是一种最简单的排序方法。它的基本操作是将一个记录插入到一个长度为 m (假设)的有序表中,使之仍保持有序,从而得到一个新的长度为 m + 1 的有序表。

    例如:

    二)插入排序实现(java)

    // 升序
    	public static void sort(int[] a) {
    		for (int i = 1; i < a.length; i++) {
    			int j = i;
    			int temp = a[j];
    			while (j > 0 && temp < a[j - 1]) {
    				a[j] = a[j - 1];
    				j--;
    			}
    			a[j] = temp;
    		}
    	}
    
    	public static void main(String[] f) {
    		int[] a = new int[25];
    		Random random = new Random();
    		for (int i = 0; i < a.length; i++) {
    			a[i] = random.nextInt(1000);
    		}
    		InsertSort.sort(a);
    		for (int a_ : a)
    			System.out.println(a_);
    	}
    

    此算法外循环 n-1 次,在一般情况下内循环平均比较次数的数量级为O(n) ,所以算法总时间复杂度为O(n2) 。

    插入排序的过程中比较的过程就是一个查找的过程,为了更加快速的找到“合适的位置”,可以使用高效些的查找算法,例如和折半查找结合,就形成了折半插入排序。

  • 相关阅读:
    增加文章
    网站之注册
    C#常用的引用
    Session.Abandon和Session.Clear有何不同 (转)
    C#文件路径的写法
    UpdatePanel的用法详解
    [转]asp:ScriptManager
    Git 常用命令
    AJAX请求 $.post方法的使用
    a 标签中调用js的几种方法
  • 原文地址:https://www.cnblogs.com/huangfox/p/2567692.html
Copyright © 2011-2022 走看看