插入排序和冒泡排序极其相似(外层循环轮数,内层循环比较次数,通过嵌套循环实现排序),不同的是插入排序减少了交换次数,冒泡排序是每次与比较值做比较后如果满足条件(大于或小于)就做数据交换,而插入排序是事先记录要插入的初始值,然后从选择值往前面做对比,如果选择值小与等于前面的值就把前面的数值赋给后一位(往后移动一位),遇到比选择值小的则停止对比,将选择值移动到最后一个大于选择值的位置,排序逻辑可以根据自己的需求来更改,比如升序降序等等。
程序实现如下图:
public class Charu {
public static void main(String[] args) {
int[] a={9,7,8,2,5,1,3,6,4};
for (int i = 1; i < a.length; i++) {
int temp=a[i];
boolean flag=true;
int t=0;
for (int j = i-1; j>=0; j--) {
if (temp
以下是程序执行后结果:
第1轮排序后;798251364
第2轮排序后:789251364
第3轮排序后:278951364
第4轮排序后:257891364
第5轮排序后:125789364
第6轮排序后:123578964
第7轮排序后:123567894
第8轮排序后:123456789
排序后数组变为{1,2,3,4,5,6,7,8,9}



