【第22期】观点:IT 行业加班,到底有没有价值?

插入排序 Insertion sort

原创 2013年12月04日 22:14:59
是一种简单的排序方法。时间复杂度为 O(n^2),即N的平方。在数据量较小的情况下,是比较有效的排序方式。

输入:N个数 < a1,a2,a3.....an >
输出:输入序列的一个排序 <a'1,a'2,a'3.....a'n> 要求 a'1<=a'2<=.....a'n

思想:把序列分为2部分:已排序,未排序。 每次从未排序中取一个数,与已排序中的值比较,插入到合适的位置。

public class InsertSort {
      public static void main(String[] args) {
             // TODO Auto-generated method stub
             int[] a;
            a = new int[30];
            Random rand = new Random();
             for( int i=0;i<a. length;i++){
                  a[i] = rand.nextInt(100);
            }
             println(a);
             long s = System. nanoTime();
             int[] b= sort(a);
             long dur = System. nanoTime() - s;         
             println(b);
            System. out.println(dur);            
      }
      
      public static int[] sort(int[] a){
             for( int i=1;i<a. length;i++){
                   int key = a[i];
                   int j=i-1;
                   while (j>=0 && a[j]>key){
                        a[j+1] = a[j];
                        j=j-1;
                  }
                  a[j+1] = key;
            }
             return a;         
      }

      public static void println(int[] a){
            System. out.print( "[");
             for ( int i = 0; i < a. length; i++) {
                  System. out.print(a[i]);
                   if(i != a. length-1)
                        System. out.print( ",");
            }
            System. out.println( "]");
      }
}


版权声明: 举报

相关文章推荐

插入排序(Insertion Sort)

插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用i...

插入排序算法(Insertion Sort)的两种实现

插入排序算法是常见的排序算法之一。其原理是从左往右遍历,每次对所取到的值(元素)把它插入到合适的位置,使得从开始到目前取到的值是一个已经排好序的状态。所以当我们取到最后一个值时,前面所有的都已经是排好序的数组了。 下面给出两种插入排序的实现。第一种是常规插入排序,最坏时间复杂度为O(n^2). /// &lt;summary&gt; /// Insertion Sort /// &lt;/

insertion sort 插入排序

首先声明:我是一个菜鸟,还是一个屌丝,就我目前的水平以及态度,很难像结构之法,算法之道的July那样写出篇幅巨大,讲解透彻的文章。 但是,我会按照我的理解写,理解到哪就写到哪,力求做到即使你跟我一样...

插入排序(Insert Sort), java版.

插入排序(Insert Sort), java版. 发表于:2008年12月28日 | 分类:<a style="text-decoration: none; color: #004

静态链表插入排序(List Insertion Sort)算法

静态链表插入排序(List Insertion Sort)算法是直接插入排序的一个变种。它的改进目的是减少在直接插入排序中的移动次数,因此在原输入数据的基础上附加一个静态链表(为了减少空间的消耗,静态...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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