算法导论示例-InsertSort

原创 2006年06月02日 22:00:00
/**
 * Introduction to Algorithms, Second Edition 
 * 2.1 InsertSort
 * @author 土豆爸爸
 * 
 */
public class InsertSort {

    /**
     * 插入排序
     * 
     * @param array
     *            待排序数组
     * @return 已排序数组
     */
    public static void sort(int[] array) {
        for (int j = 1; j < array.length; j++) {
            int key = array[j];
            int i = j - 1;
            while (i >= 0 && array[i] > key) {
                array[i + 1] = array[i];
                i--;
            }
            array[i + 1] = key;
        }
    }
}

import junit.framework.TestCase;

public class InsertSortTest extends TestCase {
    public void testFixArray() {
        int[] array = { 5, 2, 4, 6, 1, 3 };
        InsertSort.sort(array);
        assertTrue(verifyOrdered(array));
    }

    public void testRandomArray() {
        int size = (int)(Math.random()* 1000);
        int[] array = new int[size];
        for(int i = 0; i < size; i++) {
            array[i] =  (int)(Math.random()* 10000);
        }
        
        InsertSort.sort(array);
        assertTrue(verifyOrdered(array));
    }
    
    private boolean verifyOrdered(int[] array) {
        for (int i = 1; i < array.length; i++) {
            if (array[i - 1] > array[i]) {
                return false;
            }
        }
        return true;
    }
}

算法导论 第二章InsertSort

#include using namespace std; void InsertSort(int a[],int n) { int i,j; int key; ...
  • rockerman_shane
  • rockerman_shane
  • 2011年01月28日 19:57
  • 345

插入排序(insert_sort)与 并归排序(merge_sort) 算法分析

(一)插入排序 算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序...
  • hustyangju
  • hustyangju
  • 2014年05月09日 13:53
  • 1279

插入排序法(InsertSort)c++实现

插入排序法就是把无序区的数据一个一个在有序区里找到自己的位置。这就好比军训时,教官首先让最左边的人站着不动,然后从左边第二个人开始,如果他比第一个人高就不动,否则就排在第一个人的左边。接着看第三个人,...
  • justmeh
  • justmeh
  • 2009年10月27日 16:30
  • 1790

插入排序(Insertsort)之Java实现

插入排序算法介绍 排序算法是最简单的算法,也是最基本的算法。顾名思义,插入排序就是把当前待排序的元素插入到一个已经排好序的列表里面。 一个非常形象的例子就是右手抓取一张扑克牌,并把它插入左手拿着的排好...
  • kimylrong
  • kimylrong
  • 2013年12月04日 17:07
  • 28791

InsertSort

package com.kilophone.classcontent; // Administrator 从数组的第一个元素a[0]开始, // 将其后一个元素a[1]插入到a[0]的前面或者后面...
  • shanhouwang
  • shanhouwang
  • 2013年10月09日 11:03
  • 369

insertSort

#include using namespace std; template void insertSort(T *a,int num) { int i,j; T key; for(j=1;j=...
  • hhys08120
  • hhys08120
  • 2013年06月03日 15:42
  • 256

(直接)插入排序INSERT_SORT

一、伪代码 /*INSERT_SORT(A)*/ for j = 2 to A.length key = A[j] //Insert A[j] into the second se...
  • u011852211
  • u011852211
  • 2016年10月05日 20:52
  • 812

数据算法之插入排序(insertSort)的Java实现

本文的代码来自于《数据结构与算法(JAVA语言版)》,是笔者在网上找到的资料,非正式出刊版物。笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论。   插入排序方法的思想是,先以第一个...
  • claroja
  • claroja
  • 2016年12月27日 09:44
  • 388

InsertSort 插入排序算法

InsertSort 插入排序算法: 平均比较和移动次数为(n^2)/4,时间复杂度也为O(n^2) 直接插入排序比冒泡和简单选择排序的性能要好一些。 思路: 从第二个数开始遍历到最后一个数,...
  • sinat_36053757
  • sinat_36053757
  • 2017年03月16日 16:33
  • 285

直接插入排序StraightInsertSort

1、算法思想         将一个记录插入到已排序好的有序表中,从而得到一个新的记录数增1的有序表。         即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进...
  • u010887744
  • u010887744
  • 2016年01月04日 23:43
  • 1513
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:算法导论示例-InsertSort
举报原因:
原因补充:

(最多只允许输入30个字)