插入排序
基于插入的思想:打扑克牌


public static void insertionSort(int[] arr) {
// 无序区间[i...n)
// 有序区间[0..i)
// i就是有序区间和无序区间的分水岭,i之前的元素全部有序,i之后(包括i)是无序区间
for (int i = 1; i < arr.length; i++) {
// 只有当arr[j] < arr[j - 1]才进行元素交换,若 >= ,说明j已经放在正确位置
for (int j = i; j >= 1; j--) {
if ( arr[j] >= arr[j - 1] ) {
break;
}else{
swap(arr,j,j - 1);
}
}
}
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}


本文详细介绍了一种简单直观的排序算法——插入排序。通过类比打扑克牌的过程, 描述了如何将数组中的元素逐步插入到已排序的部分, 实现整个数组的排序。文章提供了具体的 Java 代码实现, 并解释了其工作原理。

被折叠的 条评论
为什么被折叠?



