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

排序算法-(3)直接插入排序

时间:2017-10-16 13:33:52      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:排序   access   分享   时间   sys   个数   顺序   nal   out   

插入排序包括:直接插入排序,二分插入排序(折半插入排序),链表插入排序,希尔排序。

今天介绍的是直接插入排序。

直接插入排序

在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。

直接插入排序是稳定的。算法时间复杂度O(n2)--[n的平方]

算法实现

import java.util.Arrays;

import com.sun.accessibility.internal.resources.accessibility;

public class Main {

    public static void main(String[] args){  
        int[] arr = {4,3,6,1,5,2,7,10,9};  
        insertSort(arr);
        System.out.println(Arrays.toString(arr));  
    }  
    
    //直接插入排序
    public static void insertSort(int[] a){
        for(int i = 1 ;i < a.length; i++){
            for(int j = i; j > 0;j--){
                if(a[j] < a[j-1]){
                    swap(a, j, j-1);
                }
            }
        }
    }
    private static void swap(int[] a,int low,int high){  
        int temp = a[low];  
        a[low] = a[high];  
        a[high] = temp;  
    } 
}

好了,查看结果

技术分享

 

排序算法-(3)直接插入排序

标签:排序   access   分享   时间   sys   个数   顺序   nal   out   

原文地址:http://www.cnblogs.com/wuguanglin/p/insertSort.html

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