欢迎来到入门教程网!

IOS

当前位置:主页 > 软件编程 > IOS >

iOS常用算法之两个有序数组合并(要求时间复杂度为0(n))

来源:本站原创|时间:2020-01-11|栏目:IOS|点击:285 次

思路:

常规思路:

先将一个数组作为合并后的数组, 然后遍历第二个数组的每项元素, 一一对比, 直到找到合适的, 就插入进去;

  简单思路: 设置数组C, 对比A和B数组的首项元素, 找到最小的, 就放入数组C,依次进行下去.

代码如下:

- (NSArray *)mergeOrderArrayWithFirstArray: (NSMutableArray *)array1 secondArray: (NSMutableArray *)array2 
  // 全为空不处理
  if (!array1.count && !array2.count) 
    return @;
  
  // 一个为空返回另外一个
  if (!array1.count) 
    return array2;
  
  if (!array2.count) 
    return array1;
  
  NSMutableArray *endArray = NSMutableArray array;
  while (1) 
    if (array10 integerValue < array20 integerValue) 
      endArray addObject:array10;
      array1 removeObjectAtIndex:0;
    else 
      endArray addObject:array20;
      array2 removeObjectAtIndex:0;
    
    if (!array1.count) 
      endArray addObjectsFromArray:array2;
      break;
    
    if (!array2.count) 
      endArray addObjectsFromArray:array1;
      break;
    
  
  return endArray;

执行代码, 输入输出结果如下:


总结

以上所述是小编给大家介绍的iOS常用算法之两个有序数组合并(要求时间复杂度为0(n)),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

上一篇:详解MacOs免密登录CentOs操作步骤

栏    目:IOS

下一篇:UILabel显示定时器文本跳动问题的解决方法

本文标题:iOS常用算法之两个有序数组合并(要求时间复杂度为0(n))

本文地址:https://www.xiuzhanwang.com/a1/IOS/11891.html

网页制作CMS教程网络编程软件编程脚本语言数据库服务器

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:835971066 | 邮箱:835971066#qq.com(#换成@)

Copyright © 2002-2020 脚本教程网 版权所有