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).
Berilgan masala:
“28”, “2”, “11”, “32”, “76”, “51”, “84”, “45”, “16” berilgan butun sonlarni pufakchali saralash usuli orqali dasturi ishlab chiqilsin va taxlil qilinsin.
Dastur kodi:
#include
using namespace std;
int main()
{
int a[9]={28,2,11,32,76,51,84,45,16};
int n=9;
int c;
for (int i = n-1; i >= 1; i--){
for (int j = 0; j < i; j++){
if (a[j] > a[j+1]){
c=a[j];
a[j]=a[j+1];
a[j+1]=c;
}
}
}
for (int i = 0; i < n; i++)
cout<
return 0;
}
Xulosa: Men ushbu amaliy ishda saralash algoritmlarini o’rgandim va amilyotda ishlatib ko’rdim, keyinchalik ushbu saralash algoritmlari menga juda foyda keltiradi degan umiddaman.
Dostları ilə paylaş: |