本帖最后由 jackz007 于 2020-11-18 14:32 编辑 #include <stdio.h>
void swap(int * a , int * b)
{
int t ;
t = * a ;
* a = * b ;
* b = t ;
}
// 显示数组元素
void show(int d[] , int n)
{
int k ;
printf("%d" , d[0]) ;
for(k = 1 ; k < n ; k ++) printf("\t%d" , d[k]) ;
printf("\n") ;
}
// 数组元素排序
void sort(int d[] , int n)
{
int i , j , t ;
for(i = 0 ; i < n - 1 ; i ++) for(j = i + 1 ; j && d[j] < d[j - 1] ; j --) swap(& d[j] , & d[j - 1]) ;
}
// 数组元素倒序
void reverse(int d[] , int n)
{
int k ;
for(k = 0 ; k < n / 2 ; k ++) swap(& d[k] , & d[n - k - 1]) ;
}
// 数组元素合并
int merge(int c[] , int a[] , int na , int b[] , int nb)
{
int k , m ;
for(m = 0 , k = 0 ; k < na ; m ++ , k ++) c[m] = a[k] ;
for(k = 0 ; k < nb ; m ++ , k ++) c[m] = b[k] ;
return m ;
}
int main(void)
{
int A[] = {10 , 25 , 35 , 40 , 55} , na = 5 ;
int B[] = {15 , 30 , 5 , 20 , 45 , 65} , nb = 6 ;
int C[50] = {0} , nc ;
nc = merge(C , A , na , B , nb) ;
sort(C , nc) ;
show(C , nc) ;
printf("\n") ;
}
编译、运行实况:D:\00.Excise\C>g++ -o sort sort.c
D:\00.Excise\C>sort
5 10 15 20 25 30 35 40 45 55
65
D:\00.Excise\C>
|