引入:插入排序是编程中常见的排序方式,它的原理类似于大家打扑克牌码牌的过程,适用于对较少元素的排序。
算法描述:
INSERTION-SORT(A)
for i = 2 to A.length
key = A[i]
i = j - 1
while i > 0 and a[i] > key
a[i+1] = a[i]
i = i - 1
A[i + 1] = key
java实现:
package sort;
import java.util.Arrays;
import java.util.Random;
public class InsertSortDemo {
// 插入排序算法
static void insertSort(int[] arr) {
for (int i = 1; i < arr .length ; i ++) {
int key = arr [i ]; // 保存当前循环下要插入的值
int j = i - 1; // 从前面已被排序好的最后一个元素开始,寻找arr[i]的合适位置
while (j >= 0 && arr[j] > key) {
arr[ j + 1] = arr[ j]; // 将当前比较的元素往后移一个位置
j--;
}
arr[ j + 1] = key; // 将arr[i]放入正确的位置
}
}
public static void main(String[] args) {
int[] test = new int[10];
Random random = new Random();
for (int i = 0; i < test .length ; i ++) { // 数组赋值
test[ i] = random.nextInt(100);
}
System. out.println(Arrays.toString( test));
insertSort(test); // 排序
System. out.println(Arrays.toString( test));
}
}