Breaking News
Loading...
Tuesday, July 9, 2013

Thuật toán InterchangeSort

7/09/2013 10:33:00 PM

*Ý tưởng 


Ý tưởng chính của giải thuật là xuất phát từ đầu dãy, tìm tất cả nghịch thế chứa phần tử này, triệt tiêu chúng bằng cách đổi chỗ phần tử này với phần tử tương ứng trong cặp nghịch thế. Lặp lại xử lý trên với các phần tử tiếp theo trong dãy. 

Giải thuật

*Bước 1 : i = 1;// bắt đầu từ đầu dãy
*Bước 2 : j = i+1;//tìm các phần tử a[j] < a[i], j>i
*Bước 3 :
  Trong khi j <= N thực hiện
  Nếu a[j]<a[i]: Hoán vị a[i], a[j];
  j = j+1; 
*Bước 4 : i = i+1;
  Nếu  i < N: Lặp lại Bước 2.
  Ngược lại:  Dừng. 

Cài đặt

void InterchangeSort(int a[], int N ) {  int  i,j;   for (i = 0 ; i<N-1 ; i++)   for (j =i+1; j < N ; j++)   if(a[j ]< a[i])   Hoanvi(a[i],a[j]); }
  void Hoanvi(int &a, int &b)
  {
  int tam=a;
  a=b;
  b=tam;
  }

0 comments:

Post a Comment

 
Toggle Footer