//插入排序
//从第一个元素开始,每个数往前插入,后一个数与前一个数相比较,如果后一个数小于前一个数,则将后一个数往前移位。
public class InsertSort {
public static void main(String[] args) {
int[] arr = {-2, 52, 525, 5, -22, 0, 2};
insertSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void insertSort(int[] arr) {
int j, t;
for (int i = 1; i < arr.length; i++) {
t = arr[i];//存储需要插入的元素
j = i - 1;//插入的前一个元素
while (j >= 0 && t < arr[j]) {// t < arr[j]后一个元素比前一个元素小
arr[j + 1] = arr[j];//把小的元素往前移位
j--;
}
arr[j + 1] = t;//把要插入的那个元素插入到合适位置
}
}
}
结果为:[-22, -2, 0, 2, 5, 52, 525]
插入排序
原创wx5d42b021b4f1f ©著作权
©著作权归作者所有:来自51CTO博客作者wx5d42b021b4f1f的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:两数交换不用中间变量
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
排序算法之计数排序的优化
排序算法之计数排序的优化
数组 计数排序 最小值 -
直接插入排序、折半插入排序、shell插入排序
直接插入排序: 折半插入排序: shell插入排序:
插入排序 折半插入排序 直接插入排序 其他