题解 | #有序序列合并#

有序序列合并

https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897

#include <stdio.h>

int main() {
    int n, m, i, j;
    while (scanf("%d %d", &n, &m) != EOF) { 
        int arr2[n];
        int arr3[m];
        int arr[n + m];
        for (i = 0; i < n; i++) {
            scanf("%d", &arr2[i]);
        }

   
        for (i = 0; i < m; i++) {
            scanf("%d", &arr3[i]);
        }


        for (i = 0; i < n; i++) {
            arr[i] = arr2[i];
        }
        for (i = 0; i < m; i++) {
            arr[n + i] = arr3[i];
        }

        // 冒泡排序
        for (i = 0; i < n + m - 1; i++) {
            for (j = 0; j < n + m - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    // 交换 arr[j] 和 arr[j + 1]
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }

 
        for (i = 0; i < n + m; i++) {
            printf("%d ", arr[i]);
        }
        printf("\n"); 
    }
    return 0;
}

我这个代码的思路不太一样

先把两个数组合并

然后用冒泡排序依次对元素进行排序

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务