设子数组a[0:k]和a[k+1:n-1]已排好序(0<=k<=n-1),试设计一个合并这两个子数组为排好序的数组a[0:n-1]的算法。要求算法在最坏情况下所用的计算时间为O(n),且只用到O(1)的辅助空间。
分析思路:从a[0:k]的第一个元素开始依次与数组a[k+1:n-1]中的元素做比较,找出较小的一个元素,将其余a[0:k]中的元素都向右移动,将较小元素放在第一个位置上,依此类推,就能得到一个有序的新数组,且在最坏情况下的时间复杂度为O(n)。
#include<stdio.h>
int main(){
int a[8];
int n=8;
int i=0;
int k=3;
int