您的位置:首页 > 移动开发 > IOS开发

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

2017-06-13 22:55 381 查看
//联系人:石虎  QQ: 1224614774
昵称:嗡嘛呢叭咪哄

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

 逻辑步骤:

 1.假设两个数组为A和B

 2.A和B都是从小到大的顺序进行排列

 **

 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;

 }

 }

 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息