Sắp xếp mảng tăng dần và gộp mảng

Thảo luận trong 'Thuật toán' bắt đầu bởi LieuKyThien, 19 Tháng bảy 2009.

  1. Offline

    LieuKyThien

    • Thành Viên Mới

    Số bài viết:
    79
    Đã được thích:
    49
    Điểm thành tích:
    0
    Yêu cầu bài toán: Nhập mảng a và b (rồi sắp xếp tăng dần) sau đó gộp thành mảng c cũng đc sắp xếp tăng dần.
    Mã:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #define size 100
    void sapxep(int a[size],int n)
    {
    	int tg;
    	for(int i=0;i<n-1;i++)
    	  for(int j=i+1;j<n;j++)
    		if(a[i]>a[j])
    		 {
    			tg=a[i];
    			a[i]=a[j];
    			a[j]=tg;
    		 }
    }
    void nhap(int a[size],int n)
    {
    	randomize();
    	for(int i=0;i<n;i++)
    		a[i]=random(10000)%10;
    }
    void xuat(int a[size],int n)
    {
    	for(int i=0;i<n;i++)
    		printf("%4d",a[i]);
    	printf("\n");
    }
    void main()
    {
    	clrscr();
    	int i,a[size],b[size],c[size],n,m;
    	printf("Nhap so luong phan tu mang a: ");
    	scanf("%d",&n);
    	nhap(a,n); sapxep(a,n);
    	printf("\nNhap so luong phan tu mang b: ");
    	scanf("%d",&m);
    	nhap(b,m); sapxep(b,m);
    	xuat(a,n); xuat(b,m);
    	for(i=0;i<n;i++)
    		c[i]=a[i];
    	for(i=0;i<m;i++)
    		c[i+n]=b[i];
    	sapxep(c,m+n);
    	xuat(c,m+n);
    	getch();
    }
    Bài mình có chỗ không hay ở phần gộp mảng. Nhưng làm biếng suy nghĩ nên chỉ biết làm có vậy. Mong đc các bạn đóng góp ý kiến để đưa ra hướng giải quyết tốt nhất

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí