Java algoritmlari


ULASHISH

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);
  }
}

O‘zingiz sinab ko‘ring »


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]
  }
}

O‘zingiz sinab ko‘ring »

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]
  }
}

O‘zingiz sinab ko‘ring »



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);
    }
  }
}

O‘zingiz sinab ko‘ring »

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());
    }
  }
}

O‘zingiz sinab ko‘ring »


Boshqa foydali algoritmlar

Collections sinfida yana ko‘plab algoritmlar mavjud, masalan:

  • Collections.max() - eng katta elementni topish
  • Collections.min() - eng kichik elementni topish
  • Collections.shuffle() - elementlarni tasodifiy aralashtirish
  • Collections.frequency() - element necha marta uchrashini sanash
  • Collections.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));
  }
}

O‘zingiz sinab ko‘ring »

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);
  }
}

O‘zingiz sinab ko‘ring »

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");
  }
}

O‘zingiz sinab ko‘ring »

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);
  }
}

O‘zingiz sinab ko‘ring »


Xulosa

  • Algoritm — masalani yechish uchun bajariladigan amallar tartibi.
  • Java Collections sinfida 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, HashSet va 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!