插入排序(JAVA)

找到第i个,将a[i]与a[0]到a[i-1]中比它小的元素依次交换,在i由左向右的变化中,i的左边都是有序的,当i达到最右边时排序完成。

插入排序对以下数组很有效:

  • 数组中每个元素距离它的最终位置都不远
  • 一个有序的大数组接一个小数组
  • 数组中只有几个元素的位置不正确

倒置的数量很少时,插入排序很可能比其他排序算法都要快。

package sort20171111;

import java.util.*;

public class Insertion {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        int []a = new int[20];
        int n;
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        for(int i = 0; i < n; i++) {
            a[i] = in.nextInt();
        }
        
        //插入排序
        for(int i = 1; i < n; i++) {
            for(int j = i; j > 0; j--) {
                if(a[j] < a[j - 1]) {
                    int temp;
                    temp = a[j];
                    a[j] = a[j - 1];
                    a[j - 1] = temp;
                }
            }
        }
        
        for(int i = 0; i < n; i++) {
            System.out.println(a[i]);
        }

    }

}

 

posted on 2017-11-12 13:32  彩虹糖呐  阅读(177)  评论(0)    收藏  举报