Java直接插入排序详解

直接插入排序原理:定义的数组,从数组第二个数直到最后一个数依次做为插入数据,依次插入到它前面的数的合适位置(比较大小,让插入数据依次和它前面的第一个数到数组第一个数比较大小,比插入数据大的数后移一位,比较到插入数据它前面的数比它小为止或者比较到了数组第一个数了)

简单举例:初始数组的序列:65 38 27 16

第一躺插入后排序结果:38 65 27 16  (38是插入数据,和它前面的65比较)

第二躺插入后排序结果:27 38 65 16(27是插入数据,先和65比较,然后和38比较)

第三趟插入后排序结果:16 27 38 65  (16是插入数据,先和65比较,再和38比较,最后和27比较,选择合适插入位置)

 

代码:

public class InsertAlgorithm {

public static void insertAlgorithm(int r[]){
for(int i=1;i int insertNumber=r[i];//将要插入的数据赋值给变量insertNumber
int j=i-1;
while(j>=0&&insertNumber r[j+1]=r[j];//第j个元素向后移动
--j;//比较插入数据和r[j]的大小,直到j为0
}
r[j+1]=insertNumber;//退出while循环,即插入的数据已经不小于r[j]了,这时插入数据插入到r[j]后面
}
for(int a:r){
System.out.print(a+" ");
}
}
 
     public static void main(String args[]){
    int a[]={52,39,67,95,70,8,25};
    insertAlgorithm(a);
     }

}

运行结果:8 25 39 52 67 70 95

觉得这篇文章写的对你有点帮助的话,点个赞吧,谢谢。

你可能感兴趣的:(算法)