Java实现(直接)插入排序
直接插入排序是指将一列乱序的数字逐个插入到队列中,在插入时小的放前面,大的放后面(指正序,逆序思路相反)。
实现过程如下:
- 建立一个临时变量(也叫哨兵),将即将参与排序的数字赋值给它。
- 从被插入的数组后面往前比较,若大于哨兵,则记录下标,从记录处后面的元素都向后移动,直到遇到比哨兵小的数。
- 将哨兵放置到遇到的第一个比哨兵小的数的后面。
实现代码,仅供参考(自己写不出来的推荐使用copilot插件进行生成,然后读代码学习):
public static void main(String args[]){
int[] arr = new int[]{1,6,8,9,2,3,5,4,7};
for(int i=1;i<arr.length;i++){ //从第二个元素开始比较
int temp = arr[i]; //记录当前元素(哨兵)
for(int j=i-1;j>=0 && arr[j]>temp;j--){ //从最后一个元素开始比较,如果比当前元素(哨兵)大
arr[j+1] = arr[j] //从该处往后所有元素向后移动一位
arr[j] = Temp //将当前元素(哨兵)插入到arr[j]中
}
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}