Zokirjonov Nurbek
951.21
Tajriba ishi №8
Murakkab saralash algoritmlari.Large sinfining qo’lanilishi
Ishning maqsadi: Murakkab saralash algoritmlari va Large sinfining qo’lanilishini o’rganish.
Nazariy qism
Merge sort(birlashtirib saralash)
Shell sort (qisqarib boruvchi qadamlar orqali saralash)
Large numbers sort(katta sonlarni saralash)
Saralash – bu ma’lum bir ma’lumotlar tuzilmasidagi (masalan array)tartibsiz ma’lumotlarni ularning qandaydir xususiyatiga ko’ra tartiblab chiqish.
Saralashdan maqsad- tartiblangan to’plamda kerakli elementni topishni osonlashtirishdan iborat.
Saralashning tadbiqi:
Masalan array
array = [“abc”, ”aa”, “abbb”, “a” ]
-dastlabki tartibsiz xolat
array = [“a”,”aa”, “abbb”, “abc”]
-alifbo bo’yicha saralash
array = [“a”, “aa”, “abc”, “abbb”]
-uzunlik bo’yicha saralash
Merge sort (Birlashtirib saralash)- Merge Sort bu saralanmagan arrayni taqqoslashga asoslangan holda saralovchi algoritm bo’lib, uning ishlash prinsipi “Bo’lib tashla va hukmronlik qil” g’oyasi asosiga qurilgan. Saralangan massivlarni birlashtirish.
Ikkita saralangan massiv berilgan. Ularni birlashtirib shunday massiv hosil qilish qilish kerakki, u yana saralangan bo’lsin.
Xar safar hali ikki massivning hali ko’rilmagan qismlaridagi birinchi ikki elementni taqqoslaymiz. Ulardan kichigini olamiz. Bu jarayonni toki bitta massivning chetigacha chiqmagunga qadar davom ettiramiz. Ortib qolgan massiv elementlarini esa to’g’ridan to’g’ri natijaviy massiv iziga berilgan tartibda joylashtirib qo’yamiz.
Masalan quyida ikki saralangan massivlarni birlashtirib, saralangan bitta massiv hosil qilishni ko’rib chiqaylik:
6-Topshiriq
Sizga bir o’lchamli sonli massiv va k soni berilgan. Sizning vazifangiz k soniniberilgan massivdan izlovchi dastur tuzish. Ya’ni qaysi pozitsiyalarda ucharishini topish.Massiv indeksi 1 dan boshlanadi.
Kiruvchi ma’lumotlar
Birinchi qatorda n butun soni massiv elementlari soni berilgan(1≤n≤100). Ikkinchiqatorda n ta son - massiv elementlari bitta probel bilan ajratilib berilgan. Uchinchiqatorda izlanayotgan k soni berilgan.Massiv elementlari va k soni butun va moduljihatdan 1000 dan oshmaydi.
Chiquvchi ma’lumotlar
Birinchi qatorda k sonining necha marta uchrashini, ikkinchi qatorda esa bupozitsiyalarni o’sish tartibida bitta probel bilan ajratib chiqaring. Agar k soni umuman uchramasa 0 chiqaring.
Misollar
№
|
Kiruvchi ma’lumotlar
|
Chiquvchi ma’lumotlar
|
1
|
3
5 6 5
5
|
2
1 3
|
2
|
8
-8 9 -8 5 6 78 -8 8
-8
|
3
1 3 7
|
3
|
4
1 2 3 4
5
|
0
|
#include
using namespace std;
int main()
{
int n;
cout<<"n="; cin>>n;
int a[1000];
for(int i=1;i<=n;i++){
cin>>a[i];
}
int k,q=0;
cout<<"k="; cin>>k;
for(int i=1;i<=n;i++){
if(a[i]==k){
q++;
cout<
}
}
cout<
return 0;
}
Dostları ilə paylaş: |