dil

Sana01.01.1970
Hajmi
#243577
Bog'liq
dil





Massiv elementlarini tartiblash
M assivlar haqidagi m asalalar ichida eng ko ‘p uchraydigani bu 
uning elementlarini o ‘sish yoki kamayish tartibida tartiblash masa- 
lasidir. Bu muammoni hal qilishning usullari k o ‘p b o ‘lib, ulardan 
birortasini boshqasidan ustun q o ‘yib bo ‘lmaydi. Har bir usul element­
lar joy lashuviga k o ‘ra boshqasidan yaxshi b o ‘lishi mumkin.
1-usul. A[l\N ] massiv elementlarini o ‘sish tartibida tartiblash 
talab qilingan bo‘lsin.
Berilgan massiv elementlari ichidan eng kichigini topib, uning 
o ‘m i 1-element bilan almashtiriladi. Shu bilan 1-element tartiblandi. 
Endi 2-element tartiblanadi. Buning uchun qolgan elementlar ichi­
dan eng kichigi topilib, uning o ‘mi 2-element bilan almashtiriladi 
va hokazo. Bu jarayon N -1 marta takrorlanganda tartiblash ham 
tugaydi. Bu usul uchun kod quyidagicha yoziladi:
include  
int mainQ
{
int min, a, j, k;
int i; int b [ 10]={56, 88, 75, 65, 78, 82, 79, 81, 68, 72}; 
f o r (i=0; i<=8; i+ + ) { 
m in=b[i]; k=I;
f o r ( j= i+ l; j< = 9 ; j + + ) if (b[j]< b=""><>
a= b[i]; b[i]=b[k]; b[k]=a;j
f o r (i=0; i<=9; i+ +)
c o u t « b [ i ] « ” , “;
return 0;
}
Bu usul 
eng kichik elementni chiqarish usuli deyiladi.
2-usul.
Ko ‘piksim on usul. Bu usulning asosiy g ‘oyasi yengil 
elementlarni yuzaga chiqarishdan iborat bo"lib, xuddi suv ichidan chi- 
qayotgan pufakchalam i eslatadi. Yengil elementlar “vazni” darajasida
94


borgan sari yuqorilab boradi. Buning ucliun birinchi elementdan 
boshlab, hamma elementlari o ‘z yonida turgan element bilan taqqos- 
lanadi. Agar
a[i] > a[i + 1] bo ‘lsa, u holda bu elementlar o ‘mi o ‘zaro 
almashtiriladi. Tekshirish yana boshidan boshlanadi.
#
include < io stream .h >  
int mainQ
{ int a, i, k;
int b [1 0 ]= {5 6 , 88, 75, 65, 78, 82, 79, 81, 68, 72}; 
f o r (i= 0 ; i< = 8 ; i+ + )
i f ( b [ i ] > b [ i + l j ) { a = b [ij; b [ i] = b [ i + l] ; b [ i + l ] = a ; i = - l ;} 
f o r (i= 0 ; i < —9; i+ + )  
c o u t « b [ i ] «  
return 0; 

j

Massivlardan satrlarni qayta ishlashda foydalanish
Biz yuqorida massivlardan satrlarni ham qayta ishlash uchun 
foydalanish mumkinligi haqida fikr bildirgan edik. Buning uchun biz- 
ga belgili tipdagi massivlar qo ‘l keladi.
Belgili massivlami ikki xil usulda e ’lon qilish mumkin:
a) 
char satr[] = “first
b) 
char sa tr[5 ]= { f \ 7 V
‘s
‘t \ 0 ’};
C++ tilida a-usul bilan e ’lon qilingan m assiv elementlarining 
soni k o ’rsatilmagan bo ‘lsa ham qiymatidagi belgilar sonidan kelib 
chiqqan holda
satr massivini 6 elementli deb qabul qilinadi. Oxirgi 
elementni C++ tili to ‘g ‘ridan-to‘g ‘ri nol element (\0) sifatida tan oladi 
va u satm ing tugaganligini anglatadi. Satrlarni ifodalovchi barcha 
belgili m assivlar ana shu belgi bilan tugashi shart.
Satr (yoki matn) belgili m assiv 1oo‘lgani uchun uning alohida 
elementlariga sonli massivlardagi kabi indekslardan foydalangan hol­
da murojaat qilish mumkin. Masalan, yuqoridagi misollarda
satr[0] 
element 
uf  harfiga, satr[6 ] esa nol elementga (“\0”) mos keladi.
Shuningdek, satrli m a’lumotlami
cin operatori yordamida 
klaviatura orqali ham kiritish mumkin. Masalan,
char satr[20];
buyrug’i uzunligi 20 ta, eng yuqori indeksi 19 b o lg an belgili massivni 
e ’lon qiladi. Unga klaviatura orqali qiymat berish uchun
c in » s a t r ;
buyrug’idan foydalanish mumkin. Kompyuter bu buyruqqa javoban 
klaviaturadan kiritilgan satming oxiriga “\0” belgisini qo‘shib o ‘qiydi. 
Shuni yoddan chiqarmaslik kerakki, klaviaturadan kiritilgan bu satr- 
ning uzunligi 20 dan kichik bo’lishi mumkin, aks holda, dastumi 
bajarish vaqtida xatolik yuzaga keladi.
Belgili massiv elementlarini
cout yordamida ekranga chiqarish 
ham mumkin. 




Download

Do'stlaringiz bilan baham:




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