基本思路
从数列的第一个数开始,这个数默认已经排好序,重复用下一个数与这个已排序的数列比较。
程序代码
import java.util.*;
public class 插入法排序{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] array = new int[7];
// 手动输入7个数
System.out.print("输入7个整数:");
for (int i = 0; i < array.length; i++) {
array[i] = sc.nextInt();
}
for (int i = 1; i < array.length; i++) {
int temp = array[i];//临时存放
int j = i - 1;// j存放已排序数列中的最末尾数的下标
// 将下一个数与这个已排序的数列比较,
// 直到已经排好序的数小于或等于这个数的位置.
while (j >= 0 && array[j] > temp)
{
// 如果已排序的数大于这个数,则把这个数移到下一个位置
array[j + 1] = array[j];
j--;
}
// 将其插入合适的位置
array[j + 1] = temp;
}
Show(array);// 输出
}
public static void Show(int[] array) {
System.out.print("插入法法排序后:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
/***
* 交换数组中指定的2个数
* @param array 一个数组
* @param i 第一个数的索引
* @param j 第二个数的索引
*/
public static void exchange(int[] array, int i, int j) {
int temp;
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
运行结果:
输入7个整数:8 6 0 2 4 9 5
插入法法排序后:0 2 4 5 6 8 9
【Moment】:天空的色彩就是生活的样子。