Rumah Java javaTutorial Pembangunan Java: bagaimana untuk melaksanakan struktur data dan algoritma

Pembangunan Java: bagaimana untuk melaksanakan struktur data dan algoritma

Sep 21, 2023 pm 04:31 PM
java struktur data algoritma

Pembangunan Java: bagaimana untuk melaksanakan struktur data dan algoritma

Pembangunan Java: Bagaimana untuk melaksanakan struktur data dan algoritma, contoh kod khusus diperlukan

Pengenalan: Struktur dan algoritma data ialah pengetahuan asas yang penting dalam sains komputer dan merupakan kemahiran yang harus dikuasai oleh setiap pembangun Java. Artikel ini akan memperkenalkan cara melaksanakan struktur dan algoritma data biasa dalam Java dan memberikan contoh kod khusus.

1. Pelaksanaan struktur data

  1. Array

Array ialah salah satu struktur data paling mudah Anda boleh menggunakan kod berikut untuk mencipta tatasusunan integer dalam Java:

int[] array = new int[5];
  1. LinkedList
  2. . struktur data dinamik. Anda boleh menggunakan kod berikut untuk melaksanakan senarai terpaut sehala dalam Java:
class Node {
    int value;
    Node next;
    
    public Node(int value) {
        this.value = value;
        this.next = null;
    }
}

class LinkedList {
    Node head;
    
    public void add(int value) {
        Node newNode = new Node(value);
        
        if (head == null) {
            head = newNode;
        } else {
            Node current = head;
            while (current.next != null) {
                current = current.next;
            }
            current.next = newNode;
        }
    }
}

Timbunan (Timbunan)
  1. Timbunan ialah struktur data yang terakhir masuk dahulu (LIFO). Anda boleh menggunakan yang berikut Kod melaksanakan tindanan:
class Stack {
    int[] array;
    int top;
    
    public Stack(int size) {
        array = new int[size];
        top = -1;
    }
    
    public void push(int value) {
        if (top < array.length - 1) {
            array[++top] = value;
        }
    }
    
    public int pop() {
        if (top >= 0) {
            return array[top--];
        }
        return -1;
    }
}

2. Pelaksanaan algoritma biasa

Algoritma pengisihan
  1. (1) Isih Buih

Isih buih ialah algoritma pengisihan mudah yang telah dilawati berulang kali disusun, elemen bersebelahan dibandingkan dan kedudukan ditukar sehingga tiada pertukaran berlaku.

Berikut ialah contoh kod menggunakan Java untuk melaksanakan isihan gelembung:

public void bubbleSort(int[] array) {
    int n = array.length;
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (array[j] > array[j + 1]) {
                int temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
            }
        }
    }
}

(2) Isih Pantas (Isih Pantas)

Isih Pantas ialah algoritma isihan yang biasa digunakan yang membahagikan urutan kepada dua bahagian dengan memilih elemen asas , dan kemudian susun dua bahagian secara berasingan.

Berikut ialah contoh kod untuk melaksanakan isihan pantas menggunakan Java:

public void quickSort(int[] array, int left, int right) {
    if (left < right) {
        int pivot = partition(array, left, right);
        quickSort(array, left, pivot - 1);
        quickSort(array, pivot + 1, right);
    }
}

public int partition(int[] array, int left, int right) {
    int pivot = array[right];
    int i = left - 1;
    for (int j = left; j < right; j++) {
        if (array[j] < pivot) {
            i++;
            int temp = array[i];
            array[i] = array[j];
            array[j] = temp;
        }
    }
    int temp = array[i + 1];
    array[i + 1] = array[right];
    array[right] = temp;
    return i + 1;
}

Algoritma carian
  1. (1) Carian Binari (Carian Binari)

Carian binari ialah algoritma carian biasa yang mencari dalam tatasusunan yang Menentukan kedudukan unsur tersebut.

Berikut ialah contoh kod untuk melaksanakan carian binari menggunakan Java:

public int binarySearch(int[] array, int target) {
    int left = 0;
    int right = array.length - 1;
    while (left <= right) {
        int mid = left + (right - left) / 2;
        if (array[mid] == target) {
            return mid;
        } else if (array[mid] < target) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
    return -1;
}

(2) Carian Linear (Carian Linear)

Carian Linear ialah algoritma carian mudah yang membandingkan elemen dalam tatasusunan satu demi satu sehingga elemen sasaran adalah dijumpai atau Lelaran melalui keseluruhan tatasusunan.

Berikut ialah contoh kod menggunakan Java untuk melaksanakan carian linear:

public int linearSearch(int[] array, int target) {
    for (int i = 0; i < array.length; i++) {
        if (array[i] == target) {
            return i;
        }
    }
    return -1;
}

Kesimpulan:

Melalui pengenalan artikel ini, kami telah mempelajari cara melaksanakan struktur dan algoritma data biasa dalam Java, dan memberikan contoh kod khusus. Diharapkan para pembaca dapat lebih memahami dan menguasai ilmu ini melalui latihan dan meningkatkan kebolehan pengaturcaraan mereka.

Atas ialah kandungan terperinci Pembangunan Java: bagaimana untuk melaksanakan struktur data dan algoritma. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Laravel Lazy Loading vs Memuatkan Bersemangat Laravel Lazy Loading vs Memuatkan Bersemangat Jul 28, 2025 am 04:23 AM

Lazy memuatkan hanya pertanyaan apabila mengakses persatuan dengan mudah boleh membawa kepada masalah n 1, yang sesuai untuk senario di mana data yang berkaitan tidak ditentukan sama ada ia diperlukan; 2. Kegunaan pemuatan kecemasan dengan () untuk memuatkan data yang berkaitan terlebih dahulu untuk mengelakkan pertanyaan n 1, yang sesuai untuk senario pemprosesan batch; 3. Pemuatan kecemasan harus digunakan untuk mengoptimumkan prestasi, dan masalah n 1 dapat dikesan melalui alat seperti Laraveldebugbar, dan $ dengan atribut model digunakan dengan teliti untuk mengelakkan overhead prestasi yang tidak perlu.

Contoh Pengurusan Memori Python Contoh Pengurusan Memori Python Jul 28, 2025 am 01:10 AM

Pengurusan memori Python adalah berdasarkan mekanisme pengiraan rujukan dan pengumpulan sampah. 1. Mekanisme pengiraan rujukan memastikan objek dikeluarkan dengan segera apabila nombor rujukan adalah 0. Nilai pulangan sys.getRefCount () adalah 1 lebih daripada rujukan sebenar kerana ia meningkatkan rujukannya sendiri; 2. Rujukan bulat tidak dapat dibersihkan melalui pengiraan rujukan, dan ia bergantung kepada kitar semula generasi modul GC. Memanggil GC.Collect () boleh mengitar semula objek yang tidak dapat dicapai; 3. Dalam pembangunan sebenar, jangka panjang rujukan objek besar harus dielakkan. Kita boleh menggunakan rujukan lemah lemah, tempat yang tepat pada masanya untuk melepaskan memori, dan menggunakan tracemalloc untuk memantau peruntukan memori; 4. Ringkasan: Python menggabungkan pengiraan rujukan dan pengumpulan sampah untuk menguruskan memori, pemaju boleh menggunakan alat dan mengoptimumkan paip rujukan.

Mengintegrasikan PHP dengan model pembelajaran mesin Mengintegrasikan PHP dengan model pembelajaran mesin Jul 28, 2025 am 04:37 AM

UsearestapitobridgePhpandMlmodelsbyrunningthemodelinpythonviaflaskorfastapiandcallingitfromphpusingcurlorguzzle.2.runpythonsc riptsdirectlyFromphpusingExec () ortshell_exec () forsimple, trafficusecases rendah, walaupunThisapproachhassecurityandperformancelimitat

Contoh pertanyaan SQL Raw Laravel Contoh pertanyaan SQL Raw Laravel Jul 29, 2025 am 02:59 AM

Laravel menyokong penggunaan pertanyaan SQL asli, tetapi parameter mengikat harus lebih disukai untuk memastikan keselamatan; 1. Gunakan db :: pilih () untuk melaksanakan pertanyaan pilih dengan parameter mengikat untuk mencegah suntikan SQL; 2. Gunakan db :: kemas kini () untuk melaksanakan operasi kemas kini dan mengembalikan bilangan baris yang terjejas; 3. Gunakan db :: masukkan () untuk memasukkan data; 4. Gunakan db :: padam () untuk memadam data; 5. Gunakan db :: pernyataan () untuk melaksanakan pernyataan SQL tanpa set keputusan seperti membuat, mengubah, dan sebagainya; 6. Adalah disyorkan untuk menggunakan Whereraw, SelectRaw dan kaedah lain dalam QueryBuilder untuk menggabungkan ungkapan asli untuk meningkatkan keselamatan

Notepad Cari dan Ganti dengan Kumpulan Tangkap Regex Notepad Cari dan Ganti dengan Kumpulan Tangkap Regex Jul 28, 2025 am 02:17 AM

Gunakan kumpulan menangkap ekspresi biasa di Notepad untuk menyusun semula teks dengan berkesan. Pertama, anda perlu membuka kotak dialog Penggantian (Ctrl H), pilih "Mod Carian" sebagai "Ekspresi Biasa", 1. Gunakan () untuk menentukan kumpulan penangkapan, seperti (\ w) untuk menangkap kata -kata; 2. Gunakan \ 1 dan \ 2 untuk merujuk kumpulan yang sepadan dalam kotak penggantian; 3. Contoh: Tukar nama "Johndoe" sebagai "Doe, John", cari (\ w) \ s (\ w), ganti dengan \ 2, \ 1; 4. Penukaran Format Tarikh 2023-12-25 hingga 25/12/2023, cari (\ d {4})-(\ d {2})-(\ d {2}), ganti dengan \ 3/\ 2/\ 1; 5. Penyusunan semula log boleh mengekstrak masa, tahap, ID dan maklumat lain

Mengoptimumkan penggunaan memori dalam aplikasi Java Mengoptimumkan penggunaan memori dalam aplikasi Java Jul 28, 2025 am 02:40 AM

UseefficientdataStructuresLikeRrayListOverLinkedListandPrimitiveCollectionStoredeDeVead; 2.MinimizeObjectCreationByreusingObjects, usingstringbuilderforconcatenation, andcachingExpensiveBjects;

Contoh Operator Python Ternary Contoh Operator Python Ternary Jul 28, 2025 am 02:57 AM

Pengendali ternary Python digunakan untuk secara ringkas melaksanakan penghakiman IF-else, dan sintaksinya adalah "value_if_trueif conditionelsevalue_if_false"; 1. Ia boleh digunakan untuk tugasan mudah, seperti mengembalikan rentetan yang sepadan berdasarkan nilai positif dan negatif; 2. Ia boleh mengelakkan kesilapan pembahagian, seperti menentukan bahawa penyebutnya bukan sifar dan kemudian pembahagian; 3. Ia boleh memilih kandungan mengikut syarat dalam format rentetan; 4. Ia boleh memberikan label kepada unsur -unsur yang berbeza dalam formula derivasi senarai; Harus diingat bahawa pengendali ini hanya sesuai untuk cawangan binari dan tidak boleh bersarang berbilang lapisan. Logik kompleks harus menggunakan struktur tradisional IF-ELIF-ELSE untuk memastikan kebolehbacaan.

contoh tetap meja CSS contoh tetap meja CSS Jul 29, 2025 am 04:28 AM

Layout Jadual: Tetap akan memaksa lebar lajur jadual ditentukan oleh lebar sel baris pertama untuk mengelakkan kandungan yang mempengaruhi susun atur. 1. Tetapkan jadual-Layout: Tetapkan dan tentukan lebar jadual; 2. Tetapkan nisbah lebar lajur tertentu untuk baris pertama th/td; 3. Gunakan ruang putih: nowrap, limpahan: tersembunyi dan teks-overflow: ellipsis untuk mengawal limpahan teks; 4. Berkenaan dengan pengurusan latar belakang, laporan data dan senario lain yang memerlukan susun atur yang stabil dan rendering berprestasi tinggi, yang secara efektif dapat menghalang susun atur susun atur dan meningkatkan kecekapan rendering.

See all articles