Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

10-Lekciya

.pdf
Скачиваний:
0
Добавлен:
28.11.2023
Размер:
449.98 Кб
Скачать

Massivlerdi sortirovka qılıw hám izlew algoritmleri. Arrays klası

Joba:

1.Massivlerdi sortirovka qılıw;

2.Massivlerde izlew;

3.Arrays klası;

4.Mısallar.

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Massivti sortirovka qılıw

10 elementten turıwshı pútin massiv berilgen:

int[] sanlar = {385,15,57,256,77,-37,14,91,-219,-7};

Bizdiń wazıypamız massiv elementlerin ósiw tártibinde sortirovka qılıw kerek. Yaǵnıy [-219, -37, -7, 14, 15, 57, 77, 91, 256, 385] kóriniste juwapqa shıǵarıw kerek.

15, 385 ten kishkene, ornın almastıramız

385

15

57

256

77

-37

14

91

-219

-7

256, 57 den úlken, ózgertirilmeydi

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Kóbiksheli sortirovka algoritmi

Onı tómendegishe ámelge asıramız:

Hár bir elementti óz-ara salıstıramız

([0] menen [1], [1] menen [2], [2] menen [3] hám t.b.);

Eger dáslepki element keyingisinen úlken bolsa, olardıń ornın almastıramız hám keyingisine ótemiz;

Eger kishi bolsa, ózgerissiz qaldıramız hám keyingisine ótemiz.

Solay etip, birinshi ótiwden soń eń úlken elementimiz (385) eń aqırǵı yacheykaǵa jaylasadı.

Keyin jáne 0 indeksten baslap massiv elementlerinen ótemiz, biraq aqırǵıdan aldınǵı elementke shekem. Bunda aqırǵıdan aldınǵı yacheykada keyingi eń úlken san (256) jaylasadı.

Bul algoritmdi massiv elementler uzınlıǵınan birge kem tákirarlaymız

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Massivti sortirovka qılıwdıń javada programması

Javada kod tómendegishe boladı:

for (int i = sanlar.length - 1; i > 0; i--) { for (int j = 0; j < i; j++) {

if (sanlar[j] > sanlar[j + 1]) { int temp = sanlar[j]; sanlar[j] = sanlar[j + 1]; sanlar[j + 1] = temp;

}

}

}

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Massiv elementlerin nusqalaw

Qandayda bir massiv berilgen:

int[] sanlar = {385,15,57,256,77,-37,14,91,-219,-7};

Biz usı massivti basqa bir massivke nusqalawımız kerek bolsın.

int[] sanlarCopy = new int[10];

Cikl operatorınan paydalanıp onı tómendegishe isleymiz:

int[] sanlarCopy = new int[10];

for (int i = 0; i < sanlar.length; i++) { sanlarCopy[i] = sanlar[i];

}

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Arrays klası

Joqarıda kórsetilgen máselelerdi islew qıyın emes. Biraq, bunday túrdegi máselelerdi kóp paydalanǵanda cikllar kóbeyiwi, programma kodı úlkeyip ketiwi múmkin. Java jaratıwshıları bunday máselelerdi sheshiwdi esapqa alıp, álleqashan massivler menen islew ushın arnalǵan java.util.Arrays klasın (Arrays ingliz tilinde massivler degen) islep shıqqan. Bul klassqa eń keń tarqalǵan máselelerdi sheshiw metodları kiritilgen. Mısalı, massivti sortirovka qılıw bir qatarda ámelge asırıladı:

int[] sanlar = {385,15,57,256,77,-37,14,91,-219,-7}; Arrays.sort(sanlar);

// [-219, -37, -7, 14, 15, 57, 77, 91, 256, 385]

Arrays.sort(massiv) massiv elementlerin ósiw tártibinde sortirovka qılıp beredi

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Arrays klası

Massiv elementlerin nátiyjege shıǵarıw ushın Arrays klasındaǵı jáne bir metod toString() paydalanıladı.

int[] sanlar = {385,15,57,256,77,-37,14,91,-219,-7}; System.out.println(Arrays.toString(sanlar));

Arrays klası arqalı bir massivti ekinshisine nusqalaw ańsat ámelge asırıladı.

int[] sanlar = {385,15,57,256,77,-37,14,91,-219,-7}; int[] sanlarCopy=Arrays.copyOf(sanlar, sanlar.length); System.out.println(Arrays.toString(sanlarCopy));

Arrays.copyOf() metodında original massivti hám nusqalanıwshı massiv uzınlıǵın kiritemiz. Biziń jaǵdayda sanlar.length massivti tolıǵı menen nusqalaydı.

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Arrays klası

Eger massiv basındaǵı sanawlı elementlerdi nusqalaw kerek bolsa:

int[] sanlar = {385,15,57,256,77,-37,14,91,-219,-7}; int[] sanlarCopy = Arrays.copyOf(sanlar, 5); System.out.println(Arrays.toString(sanlarCopy)); //[385, 15, 57, 256, 77]

Massivtiń bir bólegin nusqalaw kerek bolsa:

int[] sanlar = {385,15,57,256,77,-37,14,91,-219,-7}; int[] sanlarCopy = Arrays.copyOfRange(sanlar,3,7); System.out.println(Arrays.toString(sanlarCopy)); //[256, 77, -37, 14]

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Arrays klası

Eki massivti óz-ara salıstırıw kerek bolsa: int[] sanlar1 = {1, 2, 3}; int[] sanlar2 = {1, 2, 3};

System.out.println(Arrays.equals(sanlar1, sanlar2)); //true

Massivten kerekli elementti izlew

int binarySearch(massiv,basIndex,aqirIndex,element);

Eger bar bolsa, element indeksin, al joq bolsa -1 qaytaradı.

int[] mas = {12, 34, 56, -5, 7}; System.out.println(Arrays.binarySearch(mas,0,5,56)); // 2

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Mısallar

int[] massiv = {20, 10, 19, 8, 30};

System.out.println(massiv); //toString() metodısız juwapqa shıǵarıw System.out.println(Arrays.toString(massiv)); /*"durıs" juwapqa

shıǵarıw*/ Arrays.sort(massiv, 0, 5); //barlıq elementlerin sortirovka qılamız System.out.println(Arrays.toString(massiv));//nátiyjeni shıǵaramız int key = Arrays.binarySearch(massiv, 20); /*sortirovka qılınǵan

massivten 20 nı izleymiz*/ System.out.println(key);/*tawılǵan element indeksin juwapqa

shıǵaramız*/ System.out.println(Arrays.binarySearch(massiv, 0));//0 di izlew

run:

[I@106d69c

[20, 10, 19, 8, 30] [8, 10, 19, 20, 30] 3 -1

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Соседние файлы в предмете Программирование на Java