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

 更新时间:2019年07月18日 11:03:31   作者:jgCho  
这篇文章主要介绍了iOS常用算法之两个有序数组合并(要求时间复杂度为0(n)),实现思路是先将一个数组作为合并后的数组, 然后遍历第二个数组的每项元素,需要的朋友可以参考下

思路:

常规思路:

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

  简单思路: 设置数组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 ([array1[0] integerValue] < [array2[0] integerValue]) {
      [endArray addObject:array1[0]];
      [array1 removeObjectAtIndex:0];
    }else {
      [endArray addObject:array2[0]];
      [array2 removeObjectAtIndex:0];
    }
    if (!array1.count) {
      [endArray addObjectsFromArray:array2];
      break;
    }
    if (!array2.count) {
      [endArray addObjectsFromArray:array1];
      break;
    }
  }
  return endArray;
}

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


总结

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

相关文章

  • iOS实现去除html标签的方法汇总

    iOS实现去除html标签的方法汇总

    相信大家在做网站的时候,经常会遇到去除html标签的问题,下面这篇文章主要给大家总结介绍了关于iOS如何实现去除html标签的一些方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-10-10
  • ios微信浏览器返回不刷新问题完美解决方法

    ios微信浏览器返回不刷新问题完美解决方法

    这篇文章主要介绍了ios微信浏览器返回不刷新问题完美解决方法,需要的朋友可以参考下
    2017-09-09
  • iOS 获取当前时间及时间戳的互换实例

    iOS 获取当前时间及时间戳的互换实例

    下面小编就为大家分享一篇iOS 获取当前时间及时间戳的互换实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • 详解iOS 验证码输入的实现思路

    详解iOS 验证码输入的实现思路

    这篇文章主要介绍了iOS 验证码输入一种实现思路,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • iOS工程中怎么判断下载的流是PDF文件

    iOS工程中怎么判断下载的流是PDF文件

    iOS工程中怎么判断下载的流是PDF文件?下面小编就为大家分享一篇iOS工程中判断下载的流是PDF文件的方法。希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • MAC 系统安装java并配置环境变量

    MAC 系统安装java并配置环境变量

    这篇文章主要介绍了MAC 系统安装java并配置环境变量的相关资料,需要的朋友可以参考下
    2017-03-03
  • IOS笔记061之二维码的生成和扫描

    IOS笔记061之二维码的生成和扫描

    随着移动设备的普及为二维码提供了一个很好应用平台,无论是在商城购物还是美食城都离不开二维码,本篇文章就给大家介绍IOS笔记061之二维码的生成和扫描,感兴趣的朋友可以过来一起学习啦,本文内容讲的很详细
    2015-08-08
  • 实例讲解如何在iOS应用开发中使用设计模式中的代理模式

    实例讲解如何在iOS应用开发中使用设计模式中的代理模式

    这篇文章主要介绍了实例讲解如何在iOS应用开发中使用设计模式中的代理模式,示例为传统的Objective-C语言代码,需要的朋友可以参考下
    2016-03-03
  • iOS 进度条、加载、安装动画的简单实现

    iOS 进度条、加载、安装动画的简单实现

    这篇文章主要介绍了iOS 进度条、加载、安装动画的简单实现,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • 12个iOS技术面试题及答案总结

    12个iOS技术面试题及答案总结

    这篇文章给大家总结了在iOS面试的时候可能会遇到的12个技术面试题,以及这些面试题但答案,这些答案只是给大家一些参考,大家可以再结合自己理解进行回答,有需要的朋友们下面来一起看看吧。
    2016-09-09

最新评论