for(int i=0;i
for(int j=i+1;j
if(a[i]>a[j])
{
int k = a[j];
a[j]=a[i];
a[i]= k;}
Saralashning quyidagicha usullari bor:
qat’iy (to‘g‘ridan-to‘g‘ri) usullar;
yaxshilangan usullar.
Qat’iy usullarning afzalliklarini ko‘rib chiqaylik:
Bilamizki, dasturlarning o‘zlari ham xotirada joy egallaydi. To‘g‘ridan- to‘g‘ri saralash usullarining dasturlari qisqa bo‘lib, ular tushunishga oson.
To‘g‘ridan-to‘g‘ri saralash usullari orqali saralash tamoyillarining asosiy xususiyatlarini tushuntirish qulay.
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:
To‘g‘ridan-to‘g‘ri qo‘shish usuli (by insertion);
To‘g‘ridan-to‘g‘ri tanlash usuli (by selection);
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;
}
Do'stlaringiz bilan baham: |