Juda ham katta sonlar bilan ishlash Reja: Merge sort


Large numbers sort (katta sonlarni saralash)


Download 106.64 Kb.
bet3/5
Sana18.06.2023
Hajmi106.64 Kb.
#1594785
1   2   3   4   5
Bog'liq
saidbek d

Large numbers sort (katta sonlarni saralash)
Algoritm g’oyasi katta sonlarni satr ko’rinishida olib uzunligi bo’yicha saralanadi,agar uzinlig teng bo’lsa taqqoslanadi.
Vaqtning murakkabligi: O (k * n log n), bu erda k - eng uzun raqamning uzunligi. Bu yerda sort () funktsiyasi O (n Log n) saralash algoritmidan foydalaniladi.

Berilgan massivni saralash Shell usuli C++

#include


/* funktsiya shellSort yordamida arrni tartiblash uchun */
void shellSort(int arr[], int n)
{ // Katta bo'shliqdan boshlang, keyin bo'shliqni kamaytiring
for (int gap = n / 2; gap > 0; gap /= 2) {
// Ushbu bo'shliqning kattaligi uchun bo'sh joyni qo'shing.
// birinchi bo'shliqlar elementlari arr [0..gap-1] allaqachon tartibda
// butun massiv bo'lguncha yana bitta element qo'shishni davom ettiring
// bo'sh joy saralangan
for (int i = gap; i < n; i += 1) {
// bo'sh joyni ajratilgan elementlarga arr [i] qo'shish
// arr [i] ni tempda saqlang va i holatida teshik qiling
int temp = arr[i];
// oldingi bo'shliqlarni tartiblangan elementlarni to'g'ri qadar o'zgartiring
// arr [i] uchun joy topildi
int j;
for (j = i; j >= gap && arr[j - gap] > temp; j -= gap)
arr[j] = arr[j - gap];
// temp (original arr [i]) ni to'g'ri joyda joylashtiring
arr[j] = temp;
} } }
void printArray(int arr[], int n)
{
for (int i = 0; i < n; i++)
std::cout << arr[i] << " ";
std::cout << "\n";
}
int main()
{
int arr[] = { 12, 34, 54, 2, 3 };
int n = sizeof(arr) / sizeof(arr[0]);
std::cout << "Array before sorting: \n";
printArray(arr, n);
shellSort(arr, n);
std::cout << "Array after sorting: \n";
printArray(arr, n);
}


Large numbers sort (katta sonlarni saralash)

Download 106.64 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling