SuLiJuan66的专栏

题目:

设子数组a[0:k]和a[k+1:n-1]已排好序(0<=k<=n-2)。试设计一个合并这两个子数组为排好序的数组a[0:n-1]的算法。要求算法的在最坏情况下所用的计算时间为O(n),,且只用到O(1)的辅助空间。

#include <stdio.h>void houyi(int a[],int l,int r){int rr = r;while(rr >= l){a[rr] = a[rr-1];rr–;}}int main (){int a[] = {1,4,6,8,2,3,5,10};int i= 0;int n = sizeof(a)/sizeof(a[0]);int l = 0;int r = (n-l)/2;while(l<r){while(a[l] < a[r]){l++;}while(a[l] > a[r]){int t = a[r];houyi(a,l,r);a[l] = t;l++;r++;}}for(i=0; i<n; i++){printf(“%d “,a[i]);}printf(“\n”);return 0;}

即将前半部分排好序的子数组以及后半部分排好序的子数组合并成一个排好序的数组。

当你能爱的时候就不要放弃爱

SuLiJuan66的专栏

相关文章:

你感兴趣的文章:

标签云: