Java algoritmlari
Java algoritmlari
Oldingi boblarda ma’lumotlar tuzilmalari (ArrayList, HashMap va boshqalar) ma’lumotlarni saqlash va tartibga solish uchun qanday ishlatilishini o‘rgandingiz.
Algoritmlar ma’lumotlar tuzilmalarini saralash, ulardan qidirish va ularni qayta ishlash orqali masalalarni yechish uchun ishlatiladi.
Java tilida ko‘plab foydali algoritmlar Collections sinfiga (java.util paketida joylashgan) allaqachon o‘rnatilgan, shuning uchun ularni noldan yozishingiz shart emas.
Qidirish
Ro‘yxatdan elementlarni topish uchun Java yordamchi metodlarni taqdim etadi. Eng ko‘p ishlatiladigani Collections.binarySearch() bo‘lib, u saralangan ro‘yxatda qidiradi:
Misol
Saralangan ArrayList ichidan elementni qidirish:
import java.util.*;
public class Main {
public static void main(String[] args) {
ArrayList<String> names = new ArrayList<>();
names.add("Liam");
names.add("Jenny");
names.add("Kasper");
names.add("Angie");
Collections.sort(names); // must be sorted first
int index = Collections.binarySearch(names, "Angie");
System.out.println("Angie is at index: " + index);
}
}
Saralash
Saralash eng keng tarqalgan algoritmlardan biridir. ArrayList bilan ishlaganda elementlarni saralash uchun Collections.sort() metodidan foydalanishingiz mumkin:
Misol
Sonlar ro‘yxatini saralash:
import java.util.*;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(1);
numbers.add(7);
numbers.add(3);
numbers.add(9);
Collections.sort(numbers);
System.out.println(numbers); // [1, 3, 5, 7, 9]
}
}
Collections.sort(list, Collections.reverseOrder()) yordamida teskari tartibda ham saralashingiz mumkin:
Misol
ArrayList elementlarini kamayish tartibida saralash:
import java.util.*;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(1);
numbers.add(7);
numbers.add(3);
numbers.add(9);
Collections.sort(numbers, Collections.reverseOrder());
System.out.println(numbers); // [9, 7, 5, 3, 1]
}
}
Aylanib chiqish
Elementlarni aylanib chiqish (sikl) ham keng tarqalgan algoritmlardan biri. Buning uchun for-each siklidan yoki Iterator interfeysidan foydalanishingiz mumkin:
Misol
ArrayList bo‘ylab for-each yordamida aylanib chiqish:
import java.util.*;
public class Main {
public static void main(String[] args) {
ArrayList<String> colors = new ArrayList<>();
colors.add("Red");
colors.add("Green");
colors.add("Blue");
for (String c : colors) {
System.out.println(c);
}
}
}
Misol
ArrayList bo‘ylab Iterator yordamida aylanib chiqish:
import java.util.*;
public class Main {
public static void main(String[] args) {
ArrayList<String> colors = new ArrayList<>();
colors.add("Red");
colors.add("Green");
colors.add("Blue");
Iterator<String> it = colors.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
Boshqa foydali algoritmlar
Collections sinfida yana ko‘plab algoritmlar mavjud, masalan:
Collections.max()- eng katta elementni topishCollections.min()- eng kichik elementni topishCollections.shuffle()- elementlarni tasodifiy aralashtirishCollections.frequency()- element necha marta uchrashini sanashCollections.swap()- ro‘yxatdagi ikki elementning o‘rnini almashtirish
Ushbu misolda ArrayList ichidagi eng katta va eng kichik elementni topish uchun Collections.max() va Collections.min() metodlaridan foydalanamiz:
Misol
import java.util.*;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(1);
numbers.add(7);
numbers.add(3);
numbers.add(9);
System.out.println("Max: " + Collections.max(numbers));
System.out.println("Min: " + Collections.min(numbers));
}
}
ArrayList elementlarini tasodifiy aralashtirish:
Misol
import java.util.*;
public class Main {
public static void main(String[] args) {
ArrayList<String> cards = new ArrayList<>();
cards.add("Ace");
cards.add("King");
cards.add("Queen");
cards.add("Jack");
Collections.shuffle(cards);
System.out.println(cards);
}
}
Collections.frequency() element ro‘yxatda necha marta uchrashini sanaydi:
Misol
import java.util.*;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
fruits.add("Banana");
fruits.add("Mango");
int count = Collections.frequency(fruits, "Banana");
System.out.println("Banana appears: " + count + " times");
}
}
Collections.swap() ro‘yxatdagi ikki elementning o‘rnini almashtiradi:
Misol
import java.util.*;
public class Main {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
fruits.add("Mango");
Collections.swap(fruits, 0, 2); // Swap first and third element
System.out.println(fruits);
}
}
Xulosa
- Algoritm — masalani yechish uchun bajariladigan amallar tartibi.
- Java
Collectionssinfida o‘rnatilgan algoritmlarni taqdim etadi. - Keng tarqalgan algoritmlarga qidirish, saralash, aylanib chiqish va min/max qiymatlarni topish kiradi.
- Algoritmlar dasturlaringizni yanada kuchli va samarali qilish uchun ma’lumotlar tuzilmalari (
ArrayList,HashSetva boshqalar) bilan birgalikda ishlaydi.
Collections bo‘yicha to‘liq ma’lumotnoma
Barcha Collections metodlarining to‘liq ro‘yxati uchun Java Collections ma’lumotnomasi sahifasiga o‘ting.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
