0
点赞
收藏
分享

微信扫一扫

插入排序--Java版


目录:

1、介绍:

2、步骤:

3、排序效果:

4、代码展示:

5、结果展现:

———————————————————————————————————-

1、介绍:

       插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

2、步骤:

1、本次插入排序从小到大
2、角标从第二个值开始,遍历所有值
3、每次排序a[i]与前面的所有值比较
4、如果大,则前面的数据不动
5、如果小,则插入到数列中,所有数据往后移动

3、排序效果:

插入排序--Java版_数据

4、代码展示:

package com.datastructure.solr;

import java.util.Arrays;

/**
* Created by yuhui on 2017/5/15.
*
* 插入排序
*
* 步骤:
* 1、本次插入排序从小到大
* 2、角标从第二个值开始,遍历所有值
* 3、每次排序a[i]与前面的所有值比较
* 4、如果大,则前面的数据不动
* 5、如果小,则插入到数列中,所有数据往后移动
*/

public class A2_InserSort {

public static void main(String ars[]){

int[] a={53,27,36,15,69,42};
System.out.println("初始状态: "+Arrays.toString(a));
int[] b = InserSort(a);
System.out.println("最终状态: "+Arrays.toString(b));
}

public static int[] InserSort(int[] a){
int i,j,num=0;
//角标从第二个值开始,遍历所有值
for(i=1; i<a.length ; i++){
//每次排序a[i]与前面的所有值比较
for(j=0;j<=i;j++){
//如果大,则前面的数据不动
if(a[i]<a[j]){
//如果小,则插入到数列中,所有数据往后移动
int temp = a[i];
for(int k=i;k>j;k--){
a[k] = a[k-1];
}
a[j] = temp;
}
}
System.out.println("第"+(++num)+"次排序: "+Arrays.toString(a));
}
return a;
}

}

5、结果展现:

初始状态: [53, 27, 36, 15, 69, 42]
第1次排序: [27, 53, 36, 15, 69, 42]
第2次排序: [27, 36, 53, 15, 69, 42]
第3次排序: [15, 27, 36, 53, 69, 42]
第4次排序: [15, 27, 36, 53, 69, 42]
第5次排序: [15, 27, 36, 42, 53, 69]
最终状态: [15, 27, 36, 42, 53, 69]

如果您喜欢我写的博文,读后觉得收获很大,不妨小额赞助我一下,让我有动力继续写出高质量的博文,感谢您的赞赏!!!


插入排序--Java版_System_02


举报

相关推荐

0 条评论