Bir o'lchovli massivda saralash

Salom men bu maqolamda sizlarga bir o'lchovli massivda saralash qanday amalga oshirish mumkinligini ko'rsatib bermoqchiman. Undan oldin massiv o'zi nima? degan savolga javob topaylik. Massiv bu bir tip ostida raqamlangan ma'lumotlar jamlanmasidir.

Massivni e'lon qilish

#include<iostream>
using namespace std;
int main(){
    long a[100], double b[100];
    return 0;
}

Biz bu yerda butun tipli a va haqiqiy tipli b massivlarni e'lon qildik va ular saqlay oladigan elementlar sonini 100 deb belgiladik . Bu massivlarimiz har biri 101 element bilan ishlay oladi chunki c++ dasturlash tlida indeks 0 dan boshlanadi. Massivlarni bunday e'lon qilish xotiradan yutqazishga olib keladi, ya'ni foydalanuvchi 101 elementni ishlatmasa ham dastur xotiradan massiv uchun 101 joy ajratib turadi. Biz bu muammoni hal qilishimiz uchun foydalanuvchiga kerakli bo'lgan massiv o'lchovini kiritishini so'raymiz.

#include<iostream>
using namespace std;
int main(){
    long n;
    cin >> n;
    long a[n], double b[n];
    return 0;
}

Foydalanuvchi n o'zgaruvchisiga qiymat bergandan so'ng uning qiymati biz e'lon qilayotgan massiv uzunligini belgilab beradi.

Massiv elementlariga qiymat berish.

#include<iostream>
using namespace std;
int main(){
    long n, i;
    cin >> n;
    long a[n];
    for (i = 1; i <= n; i++)
        cin >> a[i]
        return 0;
}

Maqolam boshida massiv indekslari 0 dan boshlanadi degan edim lekin bu yerda massivning birinchi indeksli elementidan boshlab qiymat berib boshladim chunki massivning 0 indeksli elementi bizga saralash uchun kerak bo'ladi

Massiv elementlarini chop etish.

#include<iostream>
using namespace std;
int main(){
    long n, i;
    cin >> n;
    long a[n];
    for (i = 1; i <= n; i++)
        cin >> a[i];
    for (i = 1; i <= n; i++)
        cout << a[i] << " ";
    return 0;
}

Massiv elementlarini kiritish va chop etishni o'rganib oldik endi ularni saralashni o'rganamiz.

#include<iostream>
using namespace std;
int main(){
    long n, i, j;
    cin >> n;
    long a[n];
    for (i = 1; i <= n; i++)
        cin >> a[i];
    for (i = 1; i < n; i++)
    for (j = i + 1; j <= n; j++)
    {
        if (a[i] < a[j])
        {
            a[0] = a[i];
            a[i] = a[j];
            a[j] = a[0];
        }
    }
    for (i = 1; i <= n; i++)
        cout << a[i] << " ";
    return 0;
} 

Bu dasturimizda foydalanuvchi tomonidan kiritilgan massiv elementlari kamayish tartibida saralab beradi. Sizga aytgan 0 indeksli massiv elementimizni bo'sh idish sifatida ishlatib massivni saraladik.Massivni o'sish tartibida saralamoqchi bo'lsangiz chop etishdagi for ning paramertlarini o'zgartirishingiz kifoya ya'ni

for(i=n;i>=1;i--) sizning massiv elementlaringiz o'sish tartibida chop etiladi.

massiv C++ Saralash 5-Yanvar 14:50 1838

Yarbek

Muallif haqida

Musurmonov Yarbek Xudoyberdi o'g'li


Blogdagi so‘nggi maqolalar:


Fikrlar 1

Jahongir997
Jahongir997
Sizning oxirgi keltirgan misolingizdagi 10-qatorga e'tibor qaratadigan bo`lsak, unda j <= n xato beradi. Chunki, massiv elementlari n ta bo`lsa, ularning indeksi 0<=j<=n-1 oraliqda o`zgaradi. n-indeksli element mavjud emas. Eng oxirgi qator, ya'ni massiv elementlari o`sish tartibida joylashtirish uchun yozilgan siklda ham xuddi shu xato mavjud. Bu saralashni qaysi turi ekanligi, natija uchun sarflanadigan vaqt qandayligi, afzallik va kamchiliklari haqida biroz to`xtalib o`tib ketishni maslahat beraman. Umuman olganda, tushunarli, qadamma-qadam, batafsil yozilgan post. Kelajakda yuqoridagi fikrlarni inobatga olasiz degan umiddaman. Post uchun rahmat.
Iltimos, fikr bildirish uchun saytga kiring yoki ro‘yxatdan o‘ting!