مرتب کردن آرایه ها

     مرتب کردن اطلاعات چه به صورت صعودی يا نزولی ، يکی از مهمترين وظايف کامپيوتر می باشد . به عنوان مثال تعيين رتبه دانش آموزان يک مدرسه بر اساس معدل ، تعيين رتبه شرکت کنندگان در کنکور ، مرتب کردن شماره تلفن ها بر اساس نام صاحب تلفن را می توان نام برد . برای آشنايی با شيوه مرتب کردن ، ليست اعداد زير را در نظر بگيريد :

2 , 5 , 4 , 3 , 6 , 1

   برای مرتب کردن ليست اعداد فوق از کوچک به بزرگ آنها را در آرايه ای قرار می دهيم :

int a[] = { 2 , 5 , 4 , 3 , 6 , 1};

   حال کافی است آرايه a را به صورت صعودی مرتب کنيم . برای انجام اين کار از روشی به نام مرتب کردن حبابی استفاده می کنيم . اين تکنيک به دليل اينکه مقادير کوچکتر همانند حبابی در آب به سمت بالا حرکت می کنند ، مرتب کردن حبابی گفته می شود . برای مرتب کردن آرايه چندين بار بايد روی آرايه حرکت کنيم و در هر بار حرکت عناصر دو به دو با هم مقايسه می شوند ، و در صورتی که به صورت نزولی قرار داشته باشند مقاديرشان جابه جا می گردد و در غير اين صورت به همان ترتيب باقی می مانند .

   برنامه زير ليست اعداد ذکر شده را به شيوه مرتب کردن حبابی ، از کوچک به بزرگ مرتب می کند .

#include <iostream.h>
 
void showArray(const int [] , int);
 
void main()
{
  const int arraySize = 6;
  int a[ arraySize ] = { 2, 5, 4, 3, 6 ,1};
  int hold;
 
  cout << "Data items in original order\n";
 
  showArray(a,arraySize);
 
  for ( int i = 0; i < arraySize - 1 ; i++ )
     for ( int j = 0; j < arraySize - 1; j++ )
        if ( a[ j ] > a[ j + 1 ] ) {
           hold = a[ j ];
           a[ j ] = a[ j + 1 ];
           a[ j + 1 ] = hold;
         }
 
  cout << "\nData items in ascending order\n";
 
  showArray(a,arraySize);
 
}
 
void showArray( const int array[] ,int arraySize)
{
  for (int c=0; c<arraySize ;c++)
     cout << array[c] << " ";
     cout << endl;
}

   خروجی برنامه فوق به صورت زير می باشد :

Data items in original order
2 5 4 3 6 1
 
Data items in ascending order
1 2 3 4 5 6

   در برنامه فوق تابع showArray وظيفه نمايش عناصر آرايه را به عهده دارد . در اولين اجرای دستورات حلقه ها ، i = 0 می باشد . در اولين دور اجرای حلقه داخلی ، با شمارنده j عناصر آرايه به صورت زير با هم مقايسه می شوند .

   پس از اولين دور حرکت روی عناصر آرايه، ترتيب اعداد به صورت فوق خواهد شد. سپس i = 1 می گردد و دفعات بعدی مقايسه انجام گرفته و در انتهای هر بار مقايسه ترتيب عناصر به صورت زير می شود .  که سرانجام با به انتها رسيدن حرکت روی آرايه عناصر به صورت صعودی مرتب می شوند .


 

 

 

   معرفی کامپيوتروبرنامه نويسی

   ساختارهای کنترلی

   توابع

   آرايه ها

   اشاره گر ها و رشته ها

   کلاسها

   گرانبار کردن عملگر ها

 
 
 
   
 
 
 

حق کپی رایت محفوظ می باشد