printArray(arr, n);
return 0;
}
Bubble sort (Pufakchali saralash)
Bubble sort ikki qo‘shni elementni solishtirish va ular mo‘ljallangan tartibda bo‘lmaguncha, ularni almashtiradigan tartiblash algoritmidir. Xuddi suv yuzasiga ko‘tarilgan havo pufakchalarining harakati kabi, massivning har bir elementi har bir iteratsiyada oxirigacha harakat qiladi. Shuning uchun u pufakchali saralash deb ataladi (3-rasm).
“Bubble sort” bu eng sodda, ketma-ketlikdagi har bir sonni boshqa sonlar bilan solishtirishga asoslangan algoritm hisoblanadi. Unda yonma-yon turgan elementlardan chapdagisi o‘ngdagidan kattaligi aniqlansa, bu ikkala son o‘rni almashtiriladi. Bu jarayon almashtirish kerak bo‘lmay qolguncha davom etadi, ya’ni barcha elementlar o‘sish tartibida bo‘lib qolguncha.
“Bubble sort” nisbatan ko‘p vaqt talab qiluvchi saralash algoritmi hisoblanadi. Chunki unda n ta element uchun takrorlanishlar soni taqriban n2 ga teng. Bu, n kichik son bo‘lsa unchalik sezilmaydi. Sababi, hozirgi zamonaviy kompyuterlar uchun bu takrorlanish soni qiyinchilik tug‘dirmaydi. Ammo butun boshli ma’lumotlar bazasidagi ma’lumotlarni saralash talab etilsachi? Albatta vaqtdan yutqazamiz. Ammo, bu algoritm saralash algoritmlarini tushunib olish uchun ilk qadam hisoblanadi.
3-rasm. Bubble sort
Algoritmi va dasturi:
#include
using namespace std;
// Pufakchali tartiblashni amalga oshirish funksiyasi
void bubbleSort(int arr[], int n)
{
int i, j;
for (i = 0; i < n - 1; i++)
// Last i elements are already
// in place
for (j = 0; j < n - i - 1; j++)
if (arr[j] > arr[j + 1])
swap(arr[j], arr[j + 1]);
}
// Function to print an array
void printArray(int arr[], int size)
{
int i;
for (i = 0; i < size; i++)
cout << arr[i] << " ";
cout << endl;
}
// Driver code
int main()
{
int arr[] = { 5, 1, 4, 2, 8};
int N = sizeof(arr) / sizeof(arr[0]);
|
Do'stlaringiz bilan baham: |