2012百度实习生笔试之合并两个有序数组

数组al[0,mid-1]al[mid,num-1]是各自有序的,对数组al[0,num-1]的两个子有序段进行merge,得到al[0,num-1]整体有序。要求空间复杂度为O(1)。注:al[i]元素是支持'<'运算符的。

下面的代码不知道有没有符合空间复杂度O(1)的要求,如有错误,望指点。

 

#include "iostream.h"
void sort(int a[],int mid,int lenght)
{
  int temp,i,k;
  for(i=mid;i<=lenght;i++)
  {
     temp=a[i];
     k=i-1;
     while(k>=0&&a[k]>temp)
     {
        a[k+1]=a[k];
        k--;
     }
     a[k+1]=temp;
  }
}


int main(int argc, char* argv[])
{
    int a[11]={1,4,6,7,10,2,3,8,9,15,16};
    sort(a,5,10);
    int i;
    for(i=0;i<11;i++)
        cout<<a[i]<<" ";
    return 0;
}

 

 

 

转载于:https://www.cnblogs.com/mrheyao/archive/2013/03/06/2946156.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值