这是我学习写插入排序的一些思路:
首先,我们要做的是一个数组排序,所以我们要申明一个数组
做一个比较简单的数组
int[] a={5,9,3,21,49,1,99,99,78,64,51,23};
接下来,我来思考插入排序的算法,插入排序是一个怎样的算法呢?不知道大家有没有玩过“欢乐斗地主
这个游戏的洗牌功能大家都知道吧,在发完牌之后,它自己就会把牌的大小进行排序,所以我在学习的时候的思路可以借鉴这个游戏的思路。
这是一个两两相比的过程,但是我们还需要在申明一个空间去储存一个值,这可能不太好理解。那我们再进行一次图片描述。
那我开始我的代码实现:
public static void main(String[] args){
System.out.print("排序前的的数组: ");
int[] a={5,9,3,21,49,1,99,99,78,64,51,23};
for (int i = 0; i <a.length ; i++) {
System.out.println(a[i]+" ");
}
for(int i=1;i<a.length;i++){ //从第二个数开始,第一个数没意义比较
int temp=a[i]; //拿出要比较的数
int j=0;
for(j=i-1;j>=0;j--){ //i位置之前是已经排好了的,从后往前比较
if(a[j]>temp){ //一次比较i位置之前的数,如果比要比较的数小,则把j这个位置的数往后移
a[j+1]=a[j];
}else {
break;
}
}
a[j+1]=temp;//前面往后移只是依次赋值,最后要还要等一轮比较后,再把要比较的值放入合适的位置,不然会出现重复出现一样的值
}
System.out.println("排序后的数组:");
for (int i = 0; i <a.length ; i++) {
System.out.println(a[i]+" ");
}
}
}
因为本次只是堪堪入目也算个小笔记,希望对大家有用吧