码迷,mamicode.com
首页 > 编程语言 > 详细

java入门排列算法 - - >插入排序(代码量最少)

时间:2015-04-21 00:09:25      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

要理解插入排序,首先得理解实现一个算法-->对于一个已经从大到小排好序的数组a[],插入一个value使得整个数组的顺序依然是从大到小的

这个算法的实现非常简单,不做探讨。

对于乱序数组a[];在外层i循环中,第一次循环,我假定数组只有一个元素a[0],以a[1]作为value来插入,第一次循环结束可以得到一个有序数组,

第二次循环以数组有两个元素a[0],a[1],再以a[2]作为value去插入,以此类推实现整个数组排序。

 

import java.lang.reflect.Array;
import java.util.Arrays;

public class TestArray {
    public static void main(String[] args) {
        int a[] = {1,5,7,4,2,9,8,3,0};
        testArray(a);
        System.out.println(Arrays.toString(a));
    }
    
    static void testArray(int[] a){
        for(int i = 1; i < a.length; i++){
            int value = a[i], j;
            
            for(j = i-1; j >= 0 && value <a[j]; j--){
            //将a[j]位置空出来等待value插入
                a[j+1] = a[j];
            }
// 未优化的j循环
//            for(j = i-1; j >= 0; j--){
//                if(value < a[j]){
//                    a[j+1] = a[j];
//                }else{
//                    break;
//                }
//     在j循环后执行了j--
//     所以a[j+1] = value;
            a[j+1] = value;
        }
    }
}

 

java入门排列算法 - - >插入排序(代码量最少)

标签:

原文地址:http://www.cnblogs.com/superkrissV/p/4442861.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!