zoukankan      html  css  js  c++  java
  • C语言之归并排序

     即将两个都升序(或降序)排列的数据序列合并成一个仍按原序排列的序列。


    上代码:

    #include <stdio.h>
    #include <stdlib.h>
    #define m 6
    #define n 4
    int main()
    { 
      	int a[m]={-3,6,19,26,68,100} ,b[n]={8,10,12,22};
     	int i,j,k,c[m+n];
     	int l ;
      	i=j=k=0;
      	printf("a数组的元素:
    ");
      	for(l = 0 ; l < m ; l++)
      	{
      		printf("%d  ",a[l]);	
    	}
    	printf("
    b数组的元素:
    ");
    	for(l = 0 ; l < n ; l++)
      	{
      		printf("%d  ",b[l]);	
    	}
    	printf("
    合并后的数组元素:
    ");
    	while(i<m && j<n)    /*将a、b数组中的较小数依次存放到c数组中*/
        { 
    		if(a[i]<b[j]) 
    		{
    			c[k]=a[i]; 
    			i++;
    		}
         	else 
    		{
    			c[k]=b[j]; 
    			j++;
    		}
         	k++;
     	}
    	while(i>=m && j<n)   /*若a中数据所有存放完成,将b中余下的数所有存放到c中*/
    	{ 
    		c[k]=b[j]; 
    		k++; 
    		j++; 
    	}
     	while(j>=n && i<m)   /*若b中数据所有存放完成,将a中余下的数所有存放到c中*/
     	{ 
    	 	c[k]=a[i]; 
    		k++; 
    		i++; 
    	}
     	for(i=0;i<m+n;i++)  
    	  printf("%d  ",c[i]);
    	return 0 ;
    }
    
    执行结果:




  • 相关阅读:
    kvm介绍
    正式班D24
    正式班D23
    正式班D21
    正式班D20
    正式班D19
    正式班D18
    正式班D17
    正式班D16
    正式班D15
  • 原文地址:https://www.cnblogs.com/llguanli/p/7044399.html
Copyright © 2011-2022 走看看