[数据结构与算法-iOS 实现] 有序数组合并
2019-12-24 本文已影响0人
孙掌门
iOS 有序数组合并
比如有两个有序数组,1 3 5 7 9 ,2 4 6 8 10,合并之后为1 2 3 4 5 6 7 8 9 10.
思想:
思想就是用一个P指针指向第一个数组,然后用一个q指针指向第二个数组,然后分别将p和q对应的位置的值进行比较,如果p的值比q小,那么p向后移动,然后再将p的值和q进行比较,如果q小,那么q向后移动,然后再进行比较,直到一个数组遍历完毕,然后将另一个数组的值全部拿出来。
void mergeList(int a[],int alen , int b[],int blen , int result[]){
// a 数组索引
int p = 0 ;
// b 数组索引
int q= 0 ;
// 结果数组索引
int i = 0;
while (p < alen && q < blen) {
if (a[p] < b[q]) {
result[i] = a[p];
p ++;
} else {
result[i] = b[q];
q ++;
}
i ++;
}
while (p < alen) {
result[i] = a[p ++];;
i++;
}
while (q < blen) {
result[i] = b[q ++];
i ++;
}
}