|
发表于 2020-11-18 13:05:11
|
显示全部楼层
本帖最后由 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>
复制代码 |
|