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

直接插入排序算法

时间:2020-12-19 12:56:59      阅读:1      评论:0      收藏:0      [点我收藏+]

标签:length   rgba   情况   col   复杂度   有序数组   需要   直接插入   移动   

public static int[] insertionSort(int[] A) {
        int n=A.length;
        int i=0,j=0,t=0,k=0;
        for(i=1;i<n;i++) {//把A[0]看成一个有序数组,从A[1]开始到A[n]逐个插入这个数组。
            int temp=A[i];
            for(j=i-1;j>=0;j--) {//寻找插入位置k
                if(A[i]>A[j]) {
                    k=j+1;
                    break;
                }
            }
            for(t=i-1;t>=k;t--) {//从后开始挨个移动k以后的元素,把k位置空出来
                A[t+1]=A[t];
            }
            A[k]=temp;//把A[i]放到k位置
            }
        return A;
//最好情况原来数组就有序,每个元素至少访问一遍,时间复杂度n
//最坏情况,数组完全逆序,需要做1+2+......+n-1次比较,2+3+......+n次移动,时间复杂度n*n
        }

直接插入排序算法

直接插入排序算法

标签:length   rgba   情况   col   复杂度   有序数组   需要   直接插入   移动   

原文地址:https://www.cnblogs.com/licheng1995/p/14136127.html

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