iOS 笔试题~两个有序数组合并成一个有序数组

//联系人:石虎  QQ: 1224614774 昵称:嗡嘛呢叭咪哄

面试题: 怎样把两个有序数组合并成有序数组呢

 逻辑步骤:

 1.假设两个数组为AB

 2.AB都是从小到大的顺序进行排列

 **

 1.我们可以直接比较两个数组的首元素,哪个小就把这个小元素放入可变数组。

 2.把小元素所在的数组中的这个元素删除。

 3.继续比较两个数组中的首元素,直到有一个数组为空。那么就停止进行比较。把另外一个不空的数组元素全部放入可变数组中即可。

实现代码:

 - (void)viewDidLoad {

 [super viewDidLoad];

 

//实例化数组 A

 NSMutableArray *arrA = [NSMutableArray arrayWithArray:@[@1,@3,@5,@7,@9,@11]];

 //实例化数组 B

 NSMutableArray *arrB = [NSMutableArray arrayWithArray:@[@8,@15,@17,@20,@22,@35]];

//新数组

 NSMutableArray *marr = [NSMutableArray array];

//开始遍历

 for(int i = 0; i< 100; i++)

 {

 

 if (arrA[0] < arrB[0])

 {

 [marr addObject:arrA[0]];

 [arrA removeObject:arrA[0]];

 }else

 {

 [marr addObject:arrB[0]];

 [arrB removeObject:arrB[0]];

 }

 

 NSLog(@"已经循环了--->>%d",i);

 if (arrA.count == 0)

 {

 [marr addObjectsFromArray:arrB];

 NSLog(@"新数组--->>%@",marr);

 return;

 }

 if (arrB.count == 0)

 {

 [marr addObjectsFromArray:arrA];

 NSLog(@"新数组---->> %@",marr);

 return;

 }

 }

 }



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值