[update] Bài tập thường Xuyên Môn Cấu Trúc Dữ Liệu.

Thảo luận trong 'Khoa Khoa Học Máy Tính' bắt đầu bởi Ctrl+F9, 28 Tháng mười 2011.

  1. Offline

    Ctrl+F9

    • Friends

    • Đăng kí mới , gửi mail xác nhận không được kìa :v ..............
    Số bài viết:
    731
    Đã được thích:
    1.169
    Điểm thành tích:
    1.000
    Bài Toán Sắp Xếp Chèn

    Mã:
    #include<conio.h>
     #include<iostream.h>
     int ds [100] ;
     int n,x;
     void taods (int a[], int&n)
     {
                     int i;
                     for(i=0;i<n;i++)
                     {
                     printf("a[%d]=",i);
                     scanf("%d",&a[i]);
                     }
     }
     void xuatds (int a[],int n)
                     {
                     int i;
                     for (i=0;i<n;i++)
                     printf("%3d",a[i]);
                     }
     void sx_ds(int a[],int n)
                     {
                     int j;
                     for (int i=1;i<n;i++)
                          {int x=a[i];
                                 j=i-1;
                     while ((x<a[j])&&(j>=0))
                     {
                             a[j+1]=a[j];
                             j--;
                     }
                           a[j+1]=x;
                           getch();
                           printf("\n luot %d\n",i);
                           printf("\t i=%d\n",i);
                           printf("\t i=%d\n",j);
                           printf("\t x%d\n",x);
     
                           xuatds(ds,n);
                      }
                      return;
                      }
     void main()
     {
              int n;
              clrscr();
              printf("nhap n=");scanf("%d",&n);
              taods(ds,n);
              printf("danh sach vua tao : \n");
              xuatds(ds,n);
              sx_ds(ds,n);
              printf("\n danh sach vua sap xep : \n");
              xuatds(ds,n);
              getch();
     
     }
    Bài Toán Nổi Bọt

    Mã:
    #include<stdio.h>
    #include<conio.h>
    #include<iostream.h>
    int ds [100] ;
    int n,x;
    void taods (int a[] , int&n)
    {
                    int i;
                    for(i=0;i<n;i++)
                    {
                    printf("a[%d]=",i);
                    scanf("%d",&a[i]);
                    }
    }
    void xuatds (int a[],int n)
                    {
                    int i;
                    for (i=0;i<n;i++)
                    printf("%3d",a[i]);
                    }
    void swap (int *c ,int *d)
    {
    int a;
    a=*c;
    *c=*d;
    *d=a;
    return;
    }
    
    void sx_ds(int a[],int n)
                    {
                    int j;
                    for (int i=0;i<=n-1;i++)
                     {
                                 for(int j=n-1;j>=i+1;j--)
                                 if(a[j]<a[j-1])
                                 swap(&a[j],&a[j-1]);
                                getch();
                                printf("\n lan %d\n",i);
                                printf("\t i=%d\n",i);
                                printf("\t j=%d\n",j);
                                printf("\n x=%d\n",x);
                    xuatds(ds,n);
                    }
                    return;
                    }
    
    void main()
    {
             int n;
             clrscr();
             printf("nhap n=");scanf("%d",&n);
             taods(ds,n);
             printf("danh sach vua tao : \n");
             xuatds(ds,n);
             sx_ds(ds,n);
             printf("\n danh sach vua sap xep : \n");
             xuatds(ds,n);
             getch();
    
    }
    
    Bài Toán Sắp Xếp Nhanh

    Mã:
    #include<stdio.h>
    #include<conio.h>
    #include<iostream.h>
    int ds [100] ;
    int n,x;
    void taods (int a[] , int&n)
    {
                    int i;
                    for(i=0;i<n;i++)
                    {
                    printf("a[%d]=",i);
                    scanf("%d",&a[i]);
                    }
    }
    void xuatds (int a[],int n)
                    {
                    int i;
                    for (i=0;i<n;i++)
                    printf("%3d",a[i]);
                    }
    void swap (int *c ,int *d)
                  {
                  int a;
                  a=*c;
                 *c=*d;
                 *d=a;
                 return;
                  }
    
    void quick_sort(int a[],int left,int right)
                    { if(left<right)
                        {int i=left;int j=right ; int x=a[(left+right)/2];
                    do{while(a[i]<x) i++;
                    while(a[j]>x)j--;
                    if(i<=j){swap(&a[i],&a[j]);i++;j--;}
                    }while(i<=j);
                    quick_sort(a,left,j);
                    quick_sort(a,i,right);
                    }
                    }
    
    void main()
    {
             int n;
             clrscr();
             printf("nhap n=");scanf("%d",&n);
             taods(ds,n);
             printf("danh sach vua tao : \n");
             xuatds(ds,n);
             quick_sort(ds,0,n-1);
             printf("\n danh sach vua sap xep : \n");
             xuatds(ds,n);
             getch();
    
    }
    Đang cập nhật......
    duyen.only.it, killyou117TheDeath thích bài này.
  2. Offline

    TheDeath

    • Windows NT

    Số bài viết:
    304
    Đã được thích:
    71
    Điểm thành tích:
    60
    Nói chung anh em có tham khảo là đc rồi
    cám ơn Phú nha:D
  3. Offline

    Ctrl+F9

    • Friends

    • Đăng kí mới , gửi mail xác nhận không được kìa :v ..............
    Số bài viết:
    731
    Đã được thích:
    1.169
    Điểm thành tích:
    1.000
    Đã cập nhật thêm bài toán nổi bọt,và bài toán sắp xếp nhanh.Mọi người tham khảo!
  4. Offline

    huuhung

    • Thành Viên Mới

    Số bài viết:
    1
    Đã được thích:
    0
    Điểm thành tích:
    0
    có phải ban là phú học lt04c ko.um có bài nào thi post lên tham khảo với nha.cũng gần thì rồi.lo quá
  5. Offline

    Ctrl+F9

    • Friends

    • Đăng kí mới , gửi mail xác nhận không được kìa :v ..............
    Số bài viết:
    731
    Đã được thích:
    1.169
    Điểm thành tích:
    1.000
    Ừ!không chỉ mình mà mình mong muốn tất cả mọi người nếu ai làm được thì nên post lên diễn đàn(có thể trong topic này) để những người chưa làm được lấy đó tham khảo thêm.
  6. Offline

    tangvanbinh

    • Đội cứu hộ máy tính

    Số bài viết:
    449
    Đã được thích:
    197
    Điểm thành tích:
    140
    Update thêm Bài CTDL Sắp Xếp Quick_Sort
    Đã Chia Dc 2 Đoạn Trái Và Phải. Nhưng Chưa Có Đoạn Giữa. Ai Đã Hoàn THành thì Tiếp Tục Up

    Mã:
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    
    int ds[50];
    int n,d=0;
    void taods(int a[],int&n)
    {
      int i;
        for(i=1;i<=n;i++)
        {
        printf("a[%d]=" ,i);scanf("%d",&a[i]);
        }
     }
     void xuatds(int a[],int n)
     {
       int i;
           for(i=1;i<=n;i++)
           printf("%3d ",a[i]);
     }
    
     void swap(int *c,int *d)
     {
        int a;
    	a=*c;
    	*c=*d;
    	*d=a;
        return;
     }
     /*
     void noibot(int ds[],int n)
     {
        for(int i=1;i<=n-1;i++)
        {
        for(int j=n;j>=i+1;j--)
    	if(ds[j]<ds[j-1])
    	   swap(&ds[j],&ds[j-1]);
          getch();
          printf("\nLan %d:\n",i);
          xuatds(ds,n);
        }
       return;
     } */
     void sxnhanh(int ds[],int left, int right)
     {
        if(left<right)
        {
          int i=left;int j=right;int x=ds[(left+right)/2];
          do
          {  while(ds[i]<x) i++;
    	 while(ds[j]>x) j--;
    	   if(i<=j)
    	   {  swap(&ds[i],&ds[j]);
    	      i++;
    	      j--;
    	   }
          }while(i<=j);
          d++;
          printf("\nLuot %d\n",d);
          printf("\n Doan 1: ");
          for(int i1=left;i1<=j;i1++)
          {printf("%d   ",ds[i1]);}
          if((j<((left+right)/2)&&i>((left+right)/2)))
          printf("\n Doan G:");
          printf("%d",ds[j+1]);
          printf("\n Doan 2: ");
          for(int i2=i;i2<=right;i2++)
    	{printf("%d   ",ds[i2]);}
        sxnhanh(ds,left,j);
        sxnhanh(ds,i,right);
        }
     }
    void main()
    {
    clrscr();
    printf("\n nhap n:");scanf("%d",&n);
    taods(ds,n);
    printf("\n danh sach vua tao:");
    xuatds(ds,n);
    sxnhanh(ds,1,n);
    printf("\n Xuat DS: \n");
    xuatds(ds,n);
    getch();
    }
    
  7. Offline

    Alt+F4.

    • Thành Viên Mới

    Số bài viết:
    18
    Đã được thích:
    1
    Điểm thành tích:
    0
    anh Bình có chi đó vào ktx mà copy về nè ! hjhj

Chia sẻ trang này

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