麦当和笛亚 发表于 2021-10-31 09:29:46

合并整型数组

怎么样可以将两个已经排序的整型数组合并在其中一个数组里边

hrpzcf 发表于 2021-10-31 10:10:20

数组初始化后就不能改变大小了,你要怎么合并到其中一个?

jackz007 发表于 2021-10-31 13:06:09

本帖最后由 jackz007 于 2021-10-31 13:08 编辑

#include <stdio.h>

void merge(int a[] , int n , int b[] , int m)
{
      int i , j , k                                                                         ;
      if(n > 1 && m > 1) {
                if(a > a && b > b || a < a && b < b) {
                        if(a > a) {
                              for(i = 0 ; i < n ; i ++) {
                                        for(j = 0 ; j < m && b < a ;) {
                                                for(k = n ; k > i ; k --) a = a   ;
                                                a = b                                 ;
                                                for(k = j + 1 ; k < m ; k ++) b = b ;
                                                n ++                                          ;
                                                m --                                          ;
                                        }
                              }
                        } else {
                              for(i = 0 ; i < n ; i ++) {
                                        for(j = 0 ; j < m && b > a ;) {
                                                for(k = n ; k > i ; k --) a = a   ;
                                                a = b                                 ;
                                                for(k = j + 1 ; k < m ; k ++) b = b ;
                                                n ++                                          ;
                                                m --                                          ;
                                        }
                              }
                        }
                }
      }
}

int main(void)
{
      int a = {3 , 5 , 6 , 8 , 10} , b = {1 , 2 , 4 , 7 , 9} , i ;
      int c = {9 , 7 , 4 , 2 , 1} , d = {10 , 8 , 6 , 5 , 3}   ;
      merge(a , 5 , b , 5)                                              ;
      for(i = 0 ; i < 10 ; i ++) printf(" %d" , a)                   ;
      printf("\n")                                                      ;
      merge(c , 5 , d , 5)                                              ;
      for(i = 0 ; i < 10 ; i ++) printf(" %d" , c)                   ;
      printf("\n")                                                      ;
}
      编译、运行实况:
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1

D:\00.Excise\C>

傻眼貓咪 发表于 2021-10-31 13:32:59

合并在其中一个数组里是不可能的,除非创建另一个新数组(大小是两个数组的大小之和)
然后逐个比较两个数组里的元素大小进行排列赋值进新数组里便可。

Gacy 发表于 2021-10-31 15:18:36

数据结构
页: [1]
查看完整版本: 合并整型数组