Algoritma

Struktur Data

Struktur data adalah format khusus untuk mengatur dan memanipulasi data. Struktur data menentukan cara memperoleh data, dan formulir di komputer Anda. Tujuannya adalah untuk menggunakan dan mengakses data dengan cara yang efisien. Contoh struktur data adalah array, tree, hash, dan graph. Berbagai jenis aplikasi menggunakan struktur data tertentu untuk mencapai operasi yang efisien.

Kompleksitas dan penggunaan struktur data di gambarkan pada notasi O besar di mana O (1) menunjukkan algoritma paling cepat yang akan selalu mengeksekusi dalam waktu yang sama. Bertentangan dengan O (N!) Di mana waktu eksekusi akan sangat lambat.

Struktur file dan struktur penyimpanan. Struktur penyimpanan mengacu pada area penyimpanan memori komputer. Penyimpanan komputer tercepat adalah register tetapi kapasitasnya sangatlah terbatas.

Struktur file mengacu pada cara file diatur di komputer. Struktur dipilih dan diorganisir untuk operasi yang mudah.

images images

Jenis Struktur Data

Jenis struktur data terutama dikategorikan sebagai primitif seperti boolean, char, integer, string dan Non primitif seperti array, list, tree dan sebagainya. Tipe data non primitif berasal dari tipe primitif. Semua struktur data ini memungkinkan kami untuk menyelesaikan sejumlah operasi pada data. Setiap struktur memiliki keuntungan dan kerugiannya sendiri. Terserah perancang untuk memilih struktur data yang tepat untuk menjalankan algoritma tertentu secara efisien.

Linear dan Non Linear struktur data

Struktur data linier adalah struktur dimana elemen data merupakan bentuk proses sekuensial atau tersusun berurutan. Contoh dari jenis ini termasuk array, stack (tumpukan) dan queue (antrian). Bertentangan dengan struktur data non-linear dimana setiap elemen data bergantung pada proses lainnya sehingga membentuk proses non-sekuensial. Contoh dari jenis ini termasuk ‘tree’, ‘hash tree’ dan grafik.

Operasi Struktur Data

Setiap struktur data memiliki kompleksitas waktu masing-masing dalam hal operasi. Paling cepat adalah O (1) dan yang paling lambat adalah O (n). Tabel di bawah memberi kita gambaran kompleksitas waktu pada setiap struktur data. Untuk operasi pencarian, masukkan dan hapus, Hash table beroperasi pada O (1) notasi sementara yang lain sangatlah lambat terutama dalam operasi pencarian.

images

Array

Array adalah cara untuk menyimpan dan mengambil data yang terdiri dari elemen ukuran yang sama menggunakan indeks yang biasanya mengacu pada jumlah elemen array. Keuntungan dari array adalah akses waktu yang selalu sama untuk membaca dan menulis. Ini berarti bahwa data dapat diakses dalam urutan apa pun. Operasi aritmatika array dapat dilakukan dengan mengambil alamat elemen tertentu dari array dan mengambil nilai.

images

Waktu operasi array bervariasi. Menyisipkan dan menghapus operasi dari elemen array yang berada di ujung atau larik adalah O (1), lokasi lainnya adalah O (n).

images

Stack

Tumpukan atau stack adalah struktur data di mana penyisipan dan penghapusan data hanya memungkinkan dari atas. Struktur tumpukan adalah LIFO (terakhir kali masuk namum keluar pertama). Operasi ‘stack’ meliputi Push, Empty, Top, dan Pop.

images

Daftar tautan tunggal adalah jenis struktur data di mana setiap elemen (node) berisi kunci dan referensi ke simpul berikutnya. Operasi daftar Singel mencakup PushFront, TopFront, PushBack, TopBack, PopFront, PopBack, Find, Empty, dan Erase.

images images

Daftar Tautan Ganda

Daftar tautan ganda adalah jenis struktur data di mana setiap elemen (node) berisi kunci dan referensi ke node berikutnya dan simpul belakang. A dapat melakukan perjalanan dalam arah maju dan mundur. Daftar operasi ganda termasuk AddBefore, PopBack, PushBack.

images images

Queue

Queue adalah struktur data yang terbuka di kedua ujungnya. Ini adalah aliran data yang menyerupai. Salah satu ujung digunakan untuk memasukkan data dan ujung lainnya untuk menghapus data.

images

Hash Table

Tabel hash adalah tipe struktur data yang digunakan untuk mempertahankan kunci / rangkaian nilai. Tabel hash menggunakan fungsi hash untuk mengubah kunci besar dan menyebar kunci secara merata di seluruh array. Karakteristik yang sesuai dari fungsionalitas hash terdiri dari pemrosesan cepat, pengalamatan langsung O (m), dan nilai yang berbeda untuk setiap objek.

images

Binary Search Tree

‘Binary Search Tree’ menyimpan data dengan cara yang dapat dipulihkan dengan sangat mudah. Sub-pohon kiri dari sebuah node memasukkan kunci yang lebih rendah dari atau sama dengan kunci induknya, sementara sub-tree kanan memiliki kunci yang lebih tinggi daripada kunci induknya. Algoritma ini paling efektif digunakan pada daftar pencarian setelah elemen telah disortir. Pencarian dimulai di tengah, dengan cara jika nilai bagian tengah tubuh bukan kunci pencarian tujuan, itu akan menentukan apakah itu melanjutkan pencarian di sebelah kiri (kunci bawah) atau anak kanan (kunci yang lebih tinggi).

images