Shuni qayd etish kerakki, dinamik massivning har bir satri xotiraning turli joylarida joylashishi mumkin (7.1 va 7.3-rasmlar).
Ikki o‘lchamli massivni o‘chirishda oldin massivning har bir elementi (satri), so‘ngra massivning o‘zi yo‘qotiladi:
for(i=0;i
delete[]a;
Matritsani vektorga ko‘paytirish masalasi uchun dinamik massivlardan foydalanishga misol:
int main (){
int n,m;
int i,j; float s;
cout<<”\n n=”; cin>>n; // matritsa
satrlari soni
cout<<”\n m=”; cin>>m; // matritsa
ustunlari soni
float *b=new float[m];
float *c=new float[n];
//ko‘rsatkichlar massiviga xotira
ajratish
float **a=new float *[n] ;
for(i=0;i
a[i]=new float[m]; //dinamik
xotira ajratish
for(j=0;j>b[j];
for(i=0;i
for(j=0;j>a[i][j];
for(i=0;i
{
for(j=0,s=0;j
c[i]=s;
}
for(i=0;i
c[”<
delete[]b;
delete[]c;
for (i=0;i
delete[]a;
return; }
ch06/largest.cpp
#include
using namespace std;
int main(){
const int CAPACITY = 1000;
double values[CAPACITY];
int current_size = 0;
cout << " Q ni qiymatlarni kiriting:" << endl;
double input;
while (cin >> input) {
if (current_size < CAPACITY){
values[current_size] = input;
current_size++;}
}
double largest = values[0];
for (int i = 1; i < current_size; i++){
if (values[i] > largest){
largest = values[i]; }}
for (int i = 0; i < current_size; i++){
cout << values[i];
if (values[i] == largest){
cout << " <== largest value"; 37 }
cout << endl; }
return 0; }
Program run
Q ni qiymatlarni kiriting:
34.5 80 115 44.5 Q
34.5
80
115 <== largest value
44.5}
Umuman olganda saralashning maqsadi berilgan ob’yektlar to‘plamini aniq bir tartibda guruhlab chiqish jarayoni ta’riflanadi.
a0, a1... an ketma – ketlik berilgan bo‘lsin.
Ketma – ketlikning elementlarini saralash (masalan: ai <= ai+1 , i = 0 dan n-1 gacha) masalasi qo‘yilgan bo‘lsin. Bu masalani ishlash algoritmini tanlaganda quyidagilarni baholash zarur: Saralash vaqti – algoritmni baholaydigan asosiy parametr hisoblanadi. Xotira – algoritm ishlashi uchun ketadigan qo‘shimcha xotira hajmi. Bunda berilganlar va dastur kodi uchun ketadigan xotira hajmi hisobga olinmaydi. Turgʻunlik – dasturni ketma – ketlikning boshqa qiymatlarda ham turgʻun ishlashi tushuniladi. Saralash algoritmlari klassifikasiyasi. Berilgan ketma – ketlikni saralashda ketma – ketlikning xarakteristikasi xususiyatiga mos ravishda u yoki bu saralash algoritmi olinadi. Aks holda algoritmlar kerakli natijani bermaydi.
Rasm 1. Saralash algoritmi klassifikasiyasi.
1. “tez” saralash algoritmi:
“Tez” saralash algoritmi bosqichlari:
Massivning o‘rta elementini tanlab olamiz.
O‘rta element chap tomoniga o‘rta elementdan kichik elementlarni joylashtiramiz, o‘rta elementning o‘ng tomoniga esa o‘rta elementdan katta elementlarni joylashtiramiz.
int i=quyi;
int j=yuqori;
int x=A[(quyi+yuqori)/2];
do {
while(A[i]
while(A[j]>x) --j;
if(i<=j){
int temp=A[i];
A[i]=A[j];
A[j]=temp;
i++; j--;
}
} while(i<=j);
Do'stlaringiz bilan baham: