Massiv elementlarini tartiblash


Download 48.55 Kb.
Sana08.01.2022
Hajmi48.55 Kb.
#243549
Bog'liq
ALGORITOM





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 48.55 Kb.

Do'stlaringiz bilan baham:




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