算法iOS技术

合并两个有序数组(C)

2018-09-13  本文已影响9人  陈_振

合并两个有序数组,合并完之后仍有序:

void mergeList(int a[], int aLength, int b[], int bLength, int result[]) {
    int aIndex = 0; // 遍历数组a的下标
    int bIndex = 0; // 遍历数组b的下标
    int i = 0;      // 记录当前存储位置
    
    while (aIndex < aLength && bIndex < bLength) {
        if (a[aIndex] <= b[bIndex]) {
            result[i] = a[aIndex];
            aIndex++;
        } else {
            result[i] = b[bIndex];
            bIndex++;
        }
        
        i++;
    }
    
    // a剩余
    while (aIndex < aLength) {
        result[i] = a[aIndex];
        i++;
        aIndex++;
    }
    
    // b剩余
    while (bIndex < bLength) {
        result[i] = b[bIndex];
        i++;
        bIndex++;
    }
}
上一篇下一篇

猜你喜欢

热点阅读