int[] arr={57,34,4,8,60,90};
//从后向前比较,找到合适的地方后插入数据,每一步将一个待排序记录,按其顺序码大小插入到前面已经排序好的子序列位置
//外层循环从1开始
for (int i=1;i<arr.length;i++){
//记录外层的数据
int flag=arr[i];
//记录内层的下标
int j=0;
//内层循环从i-1,也就是外层的前一个开始,依次向前比较
for (j=i-1;j>=0;j--){
//如果前一个数据大于我们外层记录的数据就将数据转换
if (arr[j]>flag){
arr[j+1]=arr[j];
}else {
//如果小于直接跳出
break;
}
}
//判断我们内层的下标数据不是我们外层记录的数据,就将数据插入到内层下标处
if (arr[j+1]!=flag){
arr[j+1]=flag;
}
}
for (int i : arr){
System.out.println(i);
}
本章使用java实现了直接插入排序算法,这个算法的逻辑细节较多,只要逻辑清楚,其实这个算法也是很简单的.
有哪里不足或者有更好的建议,欢迎留言吐槽,有哪里不懂的小伙伴,可以私信我,我会一一答复,感谢认可,感谢支持!