void merget(int *a, int length, int *b, int lengthB) {
if (a == nil || b == nil || length <=0 || lengthB <=0) return;
int originalOfLengthA = 0;
int i = 0;
while (a[i] != 0) {
originalOfLengthA ++;
i ++;
}
//空间不够
if (originalOfLengthA + lengthB > length) {
return;
}
int indexOfNew = originalOfLengthA + lengthB - 1;
int indexOfOriginalA = originalOfLengthA - 1;
int indexOfOriginalB = lengthB - 1;
while (indexOfOriginalA >=0 && indexOfOriginalB >=0) {
if (a[indexOfOriginalA] > b[indexOfOriginalB]) {
a[indexOfNew] = a[indexOfOriginalA--];
} else {
a[indexOfNew] = b[indexOfOriginalB--];
}
indexOfNew--;
}
while (indexOfOriginalA >=0) {
a[indexOfNew--] = a[indexOfOriginalA--];
}
while (indexOfOriginalB >=0) {
a[indexOfNew--] = b[indexOfOriginalB--];
}
for (int i = 0; i < length; i ++) {
NSLog(@"%d", a[i]);
}
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
int a[] = {1,3,5,7,9,11,0,0,0,0,0,0,0,0,0};
int b[] = {1,2,4,6,8};
merget(a, 15, b, 5);
}
return 0;
}
排序数组合并
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 数组合并:直接使用common-lang中的jar包pom.xml配置 基本数据类型的排序不必重写compareTo方法
- 冒泡排序思想:两两比较相邻的关键字,如果反序则交换,直到没有反序的记录为止。 - (NSArray*)paiXuM...