مرتب کردن اطلاعات چه به صورت صعودی يا نزولی ، يکی از مهمترين وظايف کامپيوتر
می باشد . به عنوان مثال تعيين رتبه دانش آموزان يک مدرسه بر اساس معدل ، تعيين
رتبه شرکت کنندگان در کنکور ، مرتب کردن شماره تلفن ها بر اساس نام صاحب تلفن
را می توان نام برد . برای آشنايی با شيوه مرتب کردن ، ليست اعداد زير را در
نظر بگيريد :
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
می گردد و دفعات بعدی مقايسه انجام گرفته و در انتهای هر
بار مقايسه ترتيب عناصر به صورت زير می شود .
که
سرانجام با به انتها رسيدن حرکت روی آرايه عناصر به صورت صعودی مرتب می شوند .
|