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...