Loading

第十二题、直接插入排序(难度系数75)

直接插入排序
描述
利用直接插入排序算法实现线性表的排序。要求输出第k趟排序的结果。例如原来线性表为:26,12,25,4,36,15,21,第一趟直接排序排序结果为: 12, 26,25,4,36,15,21,第二趟直接插入排序结果为: 12,25, 26,4,36,15,21。
输入
第一个为元素个数n(1<=n<=1000),第二行为n个元素值(整数),即需要排序的元素个数,第三行为k(1<=k<=n-1),即要求的第k趟排序结果。
输出
对每一测试用例,用一行输出第k趟排序结果,用空格隔开。
样例输入

5
2 4 1 9 7
3

样例输出

1 2 4 9 7

参考:


import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        int k = sc.nextInt();
        for (int i = 1; i <= k; i++) {
            int temp = arr[i];
            int j = i - 1;
            while (j >= 0 && arr[j] > temp) {
                arr[j + 1] = arr[j];
                --j;
            }
            arr[j + 1] = temp;
        }
        for (int i = 0; i < n; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}
posted @ 2023-02-19 18:24  qing影  阅读(34)  评论(0)    收藏  举报  来源