Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/2denata/quicksort

Implementasi algoritma Quick Sort dalam bahasa pemograman Java
https://github.com/2denata/quicksort

Last synced: 9 days ago
JSON representation

Implementasi algoritma Quick Sort dalam bahasa pemograman Java

Awesome Lists containing this project

README

        

![Java](https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge&logo=openjdk&logoColor=white)

# Quick Sort

Quick Sort merupakan metode pengurutan yang sangat efisien dan sering dipakai untuk mengurutkan daftar atau array. Cara kerjanya adalah dengan memilih satu elemen sebagai pivot (penunjuk), lalu membagi elemen-elemen lainnya menjadi dua kelompok: satu kelompok yang berisi elemen yang lebih kecil dari pivot dan satu lagi yang berisi elemen yang lebih besar. Kemudian, proses ini diulang untuk setiap kelompok hingga semua elemen terurut dengan benar.

# Kompleksitas

Dalam kasus rata-rata, Quick Sort cukup efisien dengan kompleksitas waktu O(n log n), di mana n adalah jumlah elemen dalam array. Ini terjadi ketika pivot membagi array menjadi dua bagian yang hampir sama besar.

# Pro & Cons
## Kelebihan
- **Efisien**: Waktu rata-rata untuk Quick Sort adalah O(n log n), menjadikannya salah satu algoritma pengurutan tercepat untuk array.
- **In-place**: Quick Sort tidak memerlukan ruang tambahan yang signifikan, karena pengurutan dilakukan di dalam array yang sama.

## Kekurangan
- **Kasus terburuk**: Dalam kasus terburuk, waktu eksekusi bisa menjadi O(n^2), terutama jika pivot tidak dipilih dengan baik.
- **Stabilitas**: Quick Sort tidak stabil, artinya urutan elemen yang memiliki nilai yang sama mungkin tidak terjaga.

# Demo

Misal ada sebuah array dengan variabel larik yang berisi {5, 8, 26, 15, 11, 31}, menggunakan pengurutan Quick Sort membutuhkan beberapa langkah:

![image](https://github.com/user-attachments/assets/adea1b67-bca8-4369-9768-53b33789b6da)
![image](https://github.com/user-attachments/assets/66565e97-5852-4425-a0e6-0cbeef220a1c)
![image](https://github.com/user-attachments/assets/89a6f538-cd1c-4c50-90e5-b2a8e0c9502d)
![image](https://github.com/user-attachments/assets/ce27ac7f-bd29-4795-878d-2235dc57f0e5)