面试题(1).假设两个数组为A和B,A和B都是从小到大的顺序进行排列,生成一个有序的数组
解析:
1.我们可以直接比较两个数组的首元素,哪个小就把这个小元素放入可变数组。
2.把小元素所在的数组中的这个元素删除。
3.继续比较两个数组中的首元素,直到有一个数组为空。那么就停止进行比较。把另外一个不空的数组元素全部放入可变数组中即可。
//实例化数组 A
NSMutableArray *arrA = [NSMutableArray arrayWithArray:@[@1,@3,@5,@7,@9,@11]];
//实例化数组 B
NSMutableArray *arrB = [NSMutableArray arrayWithArray:@[@8,@10,@17,@20,@22,@35]];
NSMutableArray *allArray = [self sortWithArrayA:arrA arrayB:arrB];
NSLog(@"%@",allArray);
- (NSMutableArray *)sortWithArrayA:(NSMutableArray *)arrA arrayB:(NSMutableArray *)arrB{
NSMutableArray *marr = [NSMutableArray array];
for(int i = 0; i< 1000; i++){
NSNumber *a = arrA[0];
NSNumber *b = arrB[0];
if ([a intValue] < [b intValue]){
[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);
break;
}
if (arrB.count == 0){
[marr addObjectsFromArray:arrA];
NSLog(@"新数组---->> %@",marr);
break;
}
}
return marr;
}