您的位置:首页 > 其它

将两个排好序的数组,合并到另外一个数组中,并且合并之后的数组也是有序的。

2014-07-21 21:46 417 查看
int a[10] = {0};

int b[10] = {0};

int c[20] = {0};

//给数组a赋值

for (int i =
0; i <
10; i++) {

a[i] = arc4random() % (40 -
20 +
1) + 20;

}

//给数组b赋值

for (int i =
0; i <
10; i++) {

b[i] = arc4random() % (40 -
20 +
1) + 20;

}

//将数组a排序

for (int i =
0; i <
10 - 1; i++) {

for (int j =
0; j <
10 - 1 - i; j++) {

if (a[j] > a[j +
1]) {

int temp = a[j];

a[j] = a[j + 1];

a[j + 1] = temp;

}

}

}

//将数组b排序

for (int i =
0; i <
10 - 1; i++) {

for (int j =
0; j <
10 - 1 - i; j++) {

if (b[j] > b[j +
1]) {

int temp = b[j];

b[j] = b[j + 1];

b[j + 1] = temp;

}

}

}

//输出数组a

for (int i =
0; i <
10; i++) {

printf("%d ", a[i]);

}

printf("\n");

//输出数组b

for (int j =
0; j <
10; j++) {

printf("%d ", b[j]);

}

printf("\n");

//将数组a和数组b合并到数组c中

int i =
0, j =
0, k = 0;

while (i <
10 && j <
10 ) {

if (a[i] > b[j]) {

c[k++] = b[j++];

} else {

c[k++] = a[i++];

}

}

while (i <
10) {

c[k++] = a[i++];

}

while (j <
10) {

c[k++] = b[j++];

}

//输出排序好的数组c

for (int m =
0; m <
20; m++) {

printf("%d ", c[m]);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐