public class 插入排序 {
public static void insertSort(int[] arr) {
/**
* 7,1,3,2,5,4,6
* 0 1 2 3 4 5 6
* 0 - 0 有序的
* 0 -1 有序的
* 0 -2 有序的
* 0 -end 有序
*/
int N = arr.length;
for (int end = 1; end < N; end++) {
int currIndex = end;
for (int i = currIndex; i >0 && arr[i]<arr[i -1]; i--) {
swap(arr,i,i-1);
}
}
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] +" ");
}
System.out.println();
}
public static void main(String[] args) {
int[] arr = {7, 1, 3, 2, 5, 4, 6};
// 1、输出原数组、
printArray(arr);
// 2、插入排序
insertSort(arr);
// 3、输出排序数组
printArray(arr);
}
}
数据结构与算法 插入算法
最新推荐文章于 2024-06-14 09:55:36 发布