Tanlash orqali saralash algoritmi




Download 2,32 Mb.
bet17/39
Sana12.06.2024
Hajmi2,32 Mb.
#262963
1   ...   13   14   15   16   17   18   19   20   ...   39
Bog'liq
uslubiy qo\'llanma 3

Tanlash orqali saralash algoritmi
Mazkur usul quyidagi tamoyillarga asoslangan:

  1. Eng kichik kalitga ega element tanlanadi.

  1. Ushbu element a0 birinchi element bilan o‘rin almashinadi.

  2. Keyin mazkur jarayon qolgan n-1, n-2 elementlar bilan takrorlanib, to bitta eng “katta” element qolguncha davom ettiriladi.

for(int i=0;i
for( int ji+1;j
if(a[i]>a[j])
{int k = a[j];
a[j]=a[i];
a[i]= k;}
Saralashning quyidagicha usullari bor:

  1. qat’iy (to‘g‘ridan-to‘g‘ri) usullar;

  1. yaxshilangan usullar.

Qat’iy usullarning afzalliklarini ko‘rib chiqaylik:

  1. Bilamizki, dasturlarning o‘zlari ham xotirada joy egallaydi. To‘g‘ridan- to‘g‘ri saralash usullarining dasturlari qisqa bo‘lib, ular tushunishga oson.

  2. To‘g‘ridan-to‘g‘ri saralash usullari orqali saralash tamoyillarining asosiy xususiyatlarini tushuntirish qulay.

  3. Murakkablashtirilgan usullarda uncha ko‘p amallarni bajarish talab qilinmasada, ushbu amallarning o‘zlari ham ancha murakkabdir. Garchi yetarlicha katta n larda ulardan foydalanish tavsiya etilmasada, kichik n larda mazkur usullar tezroq ishlaydi.

Shu joyni o‘zida qat’iy usullarni ishlash tamoyillariga ko‘ra 3 ta toifaga bo‘lish mumkin:

  1. To‘g‘ridan-to‘g‘ri qo‘shish usuli (by insertion);

  1. To‘g‘ridan-to‘g‘ri tanlash usuli (by selection);

  2. To‘g‘ridan-to‘g‘ri almashtirish usuli (by exchange).

1-misol:
Dastur kodi:
#include
using namespace std;
int main() {
int n;
cout << "Elementlar sonini kiriting: "<
cin>>n;
int a[n];
cout << "Massiv elementlarini kiriting: "<
for (int i = 0; i < n; i++)
{ cin>>a[i]; }
for (int i = n-1; i >= 1; i--)
{ for (int j = 0; j < i; j++) {
if (a[j] > a[j+1])
{ swap(a[j],a[j+1]); } }
}
for (int i = 0; i < n; i++)
cout<
return 0;
}



Download 2,32 Mb.
1   ...   13   14   15   16   17   18   19   20   ...   39




Download 2,32 Mb.