Gộp 2 mảng đã sắp xếp thành 1 mảng đã sắp xếp (merge sort merge step).
Thuật toán gộp
i=j=k=0;
while (i < n && j < m) {
if (a[i] <= b[j]) c[k++] = a[i++];
else c[k++] = b[j++];
}
while (i < n) c[k++] = a[i++];
while (j < m) c[k++] = b[j++];
Chương trình hoàn chỉnh
#include <stdio.h>
#include <stdlib.h>
// Ham sap xep noi bot (bubble sort) de dam bao mang da sap xep
void sort(int a[], int n) {
for (int i=0; i a[j+1]) {
int t=a[j]; a[j]=a[j+1]; a[j+1]=t;
}
}
int main() {
int a[10], b[10], c[20], n, m, o, i;
printf("Kich thuoc mang 1: "); scanf("%d", &n);
printf("Kich thuoc mang 2: "); scanf("%d", &m);
o = n + m;
printf("Nhap mang 1: "); for(i=0;i
Kết quả
Kich thuoc mang 1: 4
Kich thuoc mang 2: 3
Nhap mang 1: 1 2 3 4
Nhap mang 2: 6 8 3
Mang 1 da sap xep: 1 2 3 4
Mang 2 da sap xep: 3 6 8
Mang gop: 1 2 3 3 4 6 8