Yo`nalishlar
Hozirda online

Statistika

Masalalar soni: 909

Foydalanuvchilar soni: 8819

Jo'natishlar soni: 714318

Muhokama yozuvlari: 4540

Yangiliklar soni: 97

Yangiliklar izohlari: 1174


So'ngi izohlar

651. Pufakchali saralash
Vaqt limiti: 1 sekund
Xotira limiti: 64 MB

1-kurs talabalari endi C++ fanidan saralash algoritmlarini organishni boshlashdi. Birinchi bolib pufakchali saralash algoritmini organishdi. Pufakchali saralash usuli O(n2) amal talab qiluvchi algoritmlardan biri. Unda jami n-1 ta iteratsiya bolib, har bir iteratsiyada qoshni elementlar taqqoslanadi va ular notogri tartibda joylashgan bolsa ularning orni almashtiriladi. Har bir iteratsiyada navbatdagi eng katta son oz joyini topib boradi:

long long k = 0;

for (int i = n; i >= 2; i--) {

for (int j = 1; j < i; j++) {

if (a[j] > a[j+1]) {

int t = a[j];

a[j] = a[j+1];

a[j+1] = t;

k++;

}

}

}

cout<<k;

a massiv birdan boshlab indekslangan. Bu masalada sizning vazifangiz berilgan pufakchali saralash dasturi uchun almashtirishlar soni k ni topishdan iborat.

Kiruvchi malumotlar

Birinchi qatorda n massiv elementlari soni berilgan(1≤n≤105). Ikkinchi qatorda n ta butun son a massiv elementlari bitta probel bilan ajratib berilgan. Massiv elementlari modul jihatdan 109 dan oshmaydi.

Chiquvchi malumotlar

Bitta sonni masalaning javobini chiqaring.

Misollar

Kiruvchi malumotlar

Chiquvchi malumotlar

1

3

3 1 2

2

 

Tayyorladi: Azat Yusupov
Mening urinishlarim(0) Muhokama (1) Jo'natish Eng yaxshi yechimlar Barcha muvaffaqiyatli urinishlar(30) Barcha urinishlar(243)