Trang Chủ   Vn+ TiVi   Fanpage Twitter  Fanpage FaceBook
Loading
                                         

Bản Tin Câu Lạc Bộ Pa Tin Im-Pod                                                                          
Diễn đàn Vn+
Tiêu Điểm

Tình Yêu - Giới Tính

1001 Bí Ẩn

Tổng hợp phần mềm

Ebook

Thủ Thuật IT

Thủ Thuật Blog

Video Clip

Lạ & Fun


You are not connected. Please login or register

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

1SẮP XẾP MẢNG Empty SẮP XẾP MẢNG Thu Aug 18, 2011 9:10 pm

El Kun

El Kun
Super Moderator
Super Moderator
SẮP XẾP MẢNG

Code:
#include<alloc.h>
#include<stdio.h>
#include<conio.h>
//=======================================
void taolap(int *A,int n)
  {
    int i;
    printf("\n Tao lap day so:\n");
    for(i=0;i<n;i++)
      {
   printf("\n A[%d]=",i);
   scanf("%d",&A[i]);
      }
  }
void dayso(int *A,int n)
  {
    int i;
    for(i=0;i<n;i++)
      printf("%5d",A[i]);
  }

void select(int *A,int n)
  {
    int i,j,temp;
    for(i=0;i<n-1;i++)
      {
   for(j=i+1;j<n;j++)
     {
       if(A[i]>A[j])
         {
      temp=A[i];
      A[i]=A[j];
      A[j]=temp;
         }
     }
      }
    printf("\n Ket qua thu duoc la:");
    dayso(A,n);
  }
void luachon()
  {
    clrscr();
    int *A,n;
    printf("\n \t SAP XEP KIEU LUA CHON\n");
    printf("\n Nhap so phan tu n=");
    scanf("%d",&n);
    A=(int*)malloc(n*sizeof(int));
    taolap(A,n);
    select(A,n);
    free(A);
    getch();
  }

//=======================================
void in2(int *A,int n)
  {
    int i;
    for(i=0;i<n;i++)
    printf("%5d",A[i]);
  }
void tructiep()
  {
    clrscr();
    int *A,i,j,n,temp;
    printf("\n SAP XEP KIEU TRUC TIEP\n");
    printf("\n\t SAP XEP KIEU TRUC TIEP\n");
    printf("\n Nhap so phan tu n=");
    scanf("%d",&n);
    A=(int*)malloc(n*sizeof(int));
    printf("\n Tao lap day so:\n");
    for(i=0;i<n;i++)
      {
   printf("\n A[%d]=",i);
   scanf("%d",&A[i]);
      }
    for(i=1;i<n;i++)
      {
   temp=A[i];
   for(j=i-1;j>=0&&temp<A[j];j--)
     A[j+1]=A[j];
   A[j+1]=temp;
   printf("\n\nKet qua lan thu %d:",i);
   in2(A,i+1);
      }
    free(A);
    getch();
  }
//=======================================
void tlap(int *A,int n)
  {

    int i;
    printf("\n");
    printf("\n Tao lap day so:\n");
    for(i=0;i<n;i++)
      {
   printf("\n A[%d]=",i);
   scanf("%d",&A[i]);
      }
  }
void in1(int *A,int n)
  {
    int i;
    for(i=0;i<n;i++)
    printf("%5d",A[i]);
  }

void bubble(int *A,int n)
  {
    int i,j,temp;
    for(i=1;i<n;i++)
      {
   for(j=n-1;j>=i;j--)
     {
       if(A[j-1]>A[j])
         {
      temp=A[j-1];
      A[j-1]=A[j];
      A[j]=temp;
         }
     }
   printf("\n\n Ket qua lan %d:",i);
   in1(A,n);
      }
  }
void suibot()
  {
    clrscr();
    int *A,n;
    printf("\n SAP XEP KIEU SUI BOT\n");
    printf("\n Nhap so phan tu n=");
    scanf("%d",&n);
    A=(int*)malloc(n*sizeof(int));
    tlap(A,n);
    bubble(A,n) ;
    free(A);
    getch();
  }
//=======================================
void qs(int *A,int left,int right)
  {
    int i,j,x,y;
    i=left;
    j=right;
    x=A[(left+right)/2];
    do
      {
   while(A[i]<x&&i<right)i++;
   while(A[j]>x&&j>left)j--;
   if(i<=j)
     {
       y=A[i];
       A[i]=A[j];
       A[j]=y;
       i++;
       j--;
     }
      }while(i<=j);
    if(left<j)qs(A,left,j);
    if(i<right)qs(A,i,right);
  }
void quick(int *A,int n)
  {
    qs(A,0,n-1);
  }

void in3(int *A,int n)
  {
    int i;
    for(i=0;i<n;i++)
      printf("%5d ",A[i]);
  }
void nhanh()
  {
    clrscr();
    int *A,n;
    printf("\n SAP XAP NHANH\n");
    printf("\n So phan tu n=");
    scanf("%d",&n);
    A=(int*)malloc(n*sizeof(int));
    printf("\n\n Tao lap day so:\n");
    for(int i=0;i<n;i++)
      {
   printf("\n A[%d]=",i);
   scanf("%d",&A[i]);
      }
    quick(A,n);
    printf("\n\n");
    printf("Ket qua thu duoc la:\n\n");
    in3(A,n);
    getch();
    free(A);
  }
//=======================================
void in4(int *A,int n)
  {
    for(int i=0;i<n;i++)
      printf("%5d",A[i]);
  }
void merge(int *A,int n)
  {
    int i,k,j,low1,up1,low2,up2,size;
    int *ds;
    size=1;
    ds=(int*)malloc(n*sizeof(int));
    while(size<n)
      {
   low1=0;
   k=0 ;
   while(low1+size<n)
     {
       low2=low1+size;
       up1=low2-1;
       if(low2+size-1<n)
         up2=low2+size-1;
       else
         up2=n-1;
       for(i=low1,j=low2;i<=up1 && j<=up2;k++)
         {
      if(A[i]<=A[j])
        ds[k]=A[i++];
      else
        ds[k]=A[j++];
         }
       for(;i<up1;k++)
         ds[k]=A[i++];
       for(;j<up2;k++)
         ds[k]=A[j++];
       low1=up2+1;
     }
   for(i=low1;k<n;i++)
     ds[k++]=A[i];
   for(i=0;i<n;i++)
     A[i]=ds[i];
   size*=2;
      }
    printf("\n \n Ket qua thu duoc la:\n\n");
    in4(A,n);
    free(ds);
  }
void hoanhap()
  {
    clrscr();
    int *A,n,i;
    printf("\n \t SAP XEP KIEU HOA NHAP\n");
    printf("\n So phan tu n=");
    scanf("%d",&n);
    A=(int*)malloc(n*sizeof(int));
    printf("\n Tao lap day so:\n");
    for(i=0;i<n;i++)
      {
   printf("\nA[%2d]=",i);
   scanf("%d",&A[i]);
      }
    merge(A,n);
    printf("\n");
    getch();
    free(A);
  }

//=======================================
void in5(int *A,int n)
  {
    for(int i=0;i<n;i++)
      printf("%5d",A[i]);
  }
void shaker(int *A,int n)
  {
    int i,j,temp,tdoi;
    do
      {
   tdoi=0;
   for(i=n-1;i>0;i--)
     {
       if(A[i-1]>A[i])
         {
      temp=A[i-1];
      A[i-1]=A[i];
      A[i]=temp;
      tdoi=1;
         }
     }
   for(j=1;j<n;j++)
     {
       if(A[j-1]>A[j])
         {
      temp=A[j-1];
      A[j-1]=A[j];
      A[j]=temp;
      tdoi=1;
         }
     }

      }while(tdoi);
    printf("\n\n Ket qua la :",tdoi);
    in5(A,n);
  }
void shaker()
  {
    clrscr();
    int *A,n,i;
    printf("\n \tSHAKER_SORT\n");
    printf("\n So phan tu n=");
    scanf("%d",&n);
    A=(int*)malloc(n*sizeof(int));
    printf("\n \n Tao lap day so:\n");
    for(i=0;i<n;i++)
      {
   printf("\n A[%2d]=",i);
   scanf("%d",&A[i]);
      }
    shaker(A,n);
    getch();
    free(A);
  }


//=======================================
void main()
  {
    while(1) {
    clrscr();
    int key;
    printf("\n\tSAP XEP VA TIM KIEM\n");
    printf("\n 1.Selection_sort\n");;
    printf("\n 2.Bubble_sort\n");
    printf("\n 3.Insertion_sort\n");
    printf("\n 4.Quick_sort\n");
    printf("\n 5.Merge_sort\n");
    printf("\n 6.Shaker_sort\n");
    printf("\n 0.Tro ve");
    printf("\nBam mot phim de chon chuc nang:");
    scanf("%d",&key);
    if(key==0) break;
 
    switch(key)
      {
   case 1:
         clrscr();
         luachon();
         printf("\n\n\tAn phim bat ky de tro lai menu chinh");
         getch();
         clrscr();
         break;
   case 2:
         clrscr();
         suibot();
         printf("\n\n\tAn phim bat ky de tro lai menu chinh");
         getch();
         clrscr();
         break;
   case 3:
         clrscr();
         tructiep();
         printf("\n");
         printf("\nAn phim bat ky de tro lai menu chinh");
         getch();
         clrscr();
         break;
   case 4:
         clrscr();
         nhanh();
         printf("\n");
         printf("\nAn phim bat ky de tro lai menu chinh");
         getch();
         clrscr();
         break;
   case 5:
         clrscr();
         hoanhap();
         printf("\n");
         printf("\nAn phim bat ky de tro lai menu chinh");
         getch();
         clrscr();
         break;
   case 6:
         clrscr();
         shaker();
         printf("\n");
         printf("\nAn phim bat ky de tro lai menu chinh");
         getch();
         clrscr();
         break;

      }
    }
  // getch();
  }

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Permissions in this forum:
Bạn không có quyền trả lời bài viết

 

Legend :  [ Vn-plus Founder ] [ Administrator ] [ Super Moderator ] [ Moderator ] [ Member ] [ VIP member ] [ banned ]



Free Auto Backlink Exchange ServiceFree Backlink Exchange For SeoVietnam BacklinksTravel BacklinksFree BacklinksText Backlink ExchangesText Back Link ExchangeFlorists LinksOverShopping Link ExchangeFree Automatic LinkWeb Link Exchange - Linkcsere

    Diễn Đàn Vn-Plus.Org | Thống kê | Liên hệ | Báo cáo lạm dụng  | Bạn muốn quảng cáo | Lên Đầu Trang

    Powered by: PHPBB2. Copyright © 2011  Diễn Đàn Mở VN+
    Contact: Vn-plus Founder . Yahoo: Nobita_xuka_ccy. Địa chỉ: Từ Tây - Yên Phú - Yên Mỹ - Hưng Yên
    BQT không chịu trách nhiệm bất cứ nội dung nào của thành viên đăng tải

Liên Kết Vớivn+

Free forum | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất