DIỄN ĐÀN CT0601- HUFLIT
Bạn Vui lòng đăng nhập để có thể sử dụng hết chức năng của diễn Đàn, Nếu đây là lần đầu bạn ghé thăm, Bạn có thể đăng ký 1 tài khoản Tại đây
DIỄN ĐÀN CT0601- HUFLIT
Bạn Vui lòng đăng nhập để có thể sử dụng hết chức năng của diễn Đàn, Nếu đây là lần đầu bạn ghé thăm, Bạn có thể đăng ký 1 tài khoản Tại đây
DIỄN ĐÀN CT0601- HUFLIT
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.



 
Trang Chính  Thống Kê  Latest images  Đăng ký  Đăng Nhập  

 

 Cấu trúc dữ liệu và giải thuật II: Sắp xếp

Go down 
Tác giảThông điệp
vulogo0207
Chief Petty Officer
Chief Petty Officer
vulogo0207


Tổng số bài gửi : 56
Points : 106
Danh Vọng : 2
Join date : 29/06/2009
Age : 35

Cấu trúc dữ liệu và giải thuật II: Sắp xếp Empty
Bài gửiTiêu đề: Cấu trúc dữ liệu và giải thuật II: Sắp xếp   Cấu trúc dữ liệu và giải thuật II: Sắp xếp Icon_minitimeSat Jul 11, 2009 11:32 am

Insertion Sort

Code:

#include"stdio.h"
#define max 100
void nhapmang(int &n,int a[])
{
   printf("Moi ban nhap so phan tu n:");
   scanf("%d",&n);
   for(int i=0;i<n;i++)
   {
      printf("a[%d]= ",i);
      scanf("%d",&a[i]);
   }
}
void xuatmang(int n,int a[])
{
   for(int i=0;i<n;i++)
   {
      printf("%d ",a[i]);
   }
   printf("\n");
}
void Insertion(int n,int a[])
{
   int temp;
   int pos;
   
   for(int i=0;i<n;i++)
   {
      temp=a[i];   
      pos=i-1;
      while(pos>=0&&temp<a[pos])
      {
         a[pos+1]=a[pos];
         pos--;
      }
      
      a[pos+1]=temp;
      xuatmang(n,a);
   }   
}
void main()
{
   int n;
   int a[max];
   nhapmang(n,a);
   Insertion(n,a);
}
Về Đầu Trang Go down
vulogo0207
Chief Petty Officer
Chief Petty Officer
vulogo0207


Tổng số bài gửi : 56
Points : 106
Danh Vọng : 2
Join date : 29/06/2009
Age : 35

Cấu trúc dữ liệu và giải thuật II: Sắp xếp Empty
Bài gửiTiêu đề: Re: Cấu trúc dữ liệu và giải thuật II: Sắp xếp   Cấu trúc dữ liệu và giải thuật II: Sắp xếp Icon_minitimeSun Jul 12, 2009 12:07 pm

Shell sort


Shell sort cũng tương tự Insertion sort chỉ có những điểm khác sau
1) Thay vì bước nhảy là 1 thì bước nhảy sẽ là k
2) Biến k sẽ được điều khiển bẳng vòng while
3) Những chỗ +1 hoặc - 1 sẽ được thay bẳng k

Code:
#include "stdio.h"
#define max 100
void nhapmang(int &n, int a[])
{
   printf("Moi nhap so phan tu n:");
   scanf("%d",&n);
   for(int i=0;i<n;i++)
   {
      printf("a[%d]=",i);
      scanf("%d",&a[i]);
   }   
}
void xuatmang(int n,int a[])
{
   for(int i=0;i<n;i++)
   {
      printf("%d ",a[i]);
   }
}
void Shell(int n, int a[])
{
   int k=n/2;                          //thêm biến bước nhảy k
   int pos;
   int temp;
   while(k!=0)                      //vòng lặp điều khiển bước nhảy k
   {
      for(int i=k;i<n;i+=k)            //thay 1 bằng k
      {
         temp=a[i];
         pos=i-k;                    //thay 1 bằng k
         while(pos>=0&&a[pos]>temp)
         {
            a[pos+k]=a[pos];    //thay 1 bằng k
            pos-=k;
         }
         a[pos+k]=temp;            //thay 1 bằng k
      }
      k=k/2;
   }
}
void main()
{
   int n;
   int a[max];
   nhapmang(n,a);
   printf("Mang sau khi nhap: ");
   xuatmang(n,a);
   printf("\n");
   Shell(n,a);
   xuatmang(n,a);
   printf("\n");
}
Về Đầu Trang Go down
 
Cấu trúc dữ liệu và giải thuật II: Sắp xếp
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Cấu trúc dữ liệu và giải thuật I: Tìm kiếm
» Bài giải Oracle đề 1
» Tài liệu c# có thể tham khảo được đây, Q toàn tham khảo ở đây mà biết C# nè
» Bài giải ASP.NET lần 1
» Bài giải Oracle đề 2

Permissions in this forum:Bạn không có quyền trả lời bài viết
DIỄN ĐÀN CT0601- HUFLIT :: KHU VỰC CT0601 :: Share Sources-
Chuyển đến