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

来源:互联网 发布:我的淘宝没有我要开店 编辑:程序博客网 时间:2024/06/05 21:10

//联系人:石虎  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 0