Bubble Sort dan Shell-Sort. Yuliana Setiowati

dokumen-dokumen yang mirip
Sorting Algorithms. Definisi

Algoritma Sorting (Selection Insertion)

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

Praktikum 8. Pengurutan (Sorting) Bubble Sort, Shell Sort

STRUKTUR DATA (3) sorting array. M.Cs

Gambar 13.1 Ilustrasi proses algoritma sorting

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

Sorting Algorithms. Buble Sort

Analisis Algoritma Bubble Sort

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

Politeknik Elektronika Negeri Surabaya

Sorting Algorithms. Divide and Conquer

STRUKTUR DATA SORTING ARRAY

Outline STRUKTUR DATA. VII. Sorting

Sorting. Pertemuan ke 14.

BAB 8 SORTING DAN SEARCHING

Alpro & Strukdat 1 C++ (Sorting) Dwiny Meidelfi, M.Cs

BAB VI Pengurutan (Sorting)

7. SORTING DAN SEARCHING

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

Politeknik Elektronika Negeri Surabaya

Simple Sorting Techniques

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 1: 9 Mei 2016

Analisis Kecepatan Sorting Dengan Notasi Big O

BAB 8 SORTIR. Pengurutan data (sorting) adalah suatu proses untuk menyusun kembali himpunan obyek menggunakan aturan tertentu.

ALGORITMA PENGURUTAN & PENCARIAN

Modul Praktikum Algoritma dan Struktur Data

Algoritma dan Struktur Data. Searching dan Sorting

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

SEARCHING & SORTING. Pendahuluan

Kompleksitas Algoritma Dalam Algoritma Pengurutan

BAB VI SORTIR ATAU PENGURUTAN

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

BAB I PENDAHULUAN.

SORTING (PENGURUTAN DATA)

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

MENYIGI PENGGUNAAN METODE SHELLSORT DALAM PENGURUTAN DATA

STRATEGI DIVIDE AND CONQUER

PERTEMUAN 10 METODE DEVIDE AND CONQUER

Objectives. Struktur Data & Algoritme (Data Structures & Algorithms) Sort. Outline. Bubble Sort: idea. Bubble Sort. Sorting

Array ARRAY BERDIMENSI SATU. Representasi (Pemetaan) di memori. Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

SORTING (BAGIAN II) Proses kelima

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA BUBBLE SORT, SELECTION SORT, INSERTION SORT

BAB VII ALGORITMA DIVIDE AND CONQUER

BAB 2 LANDASAN TEORI

Perbandingan Performa Kombinasi Algoritma Pengurutan Quick-Insertion Sort dan Merge-Insertion Sort

PENGURUTAN (SORTING) 1. Overview

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

PERTEMUAN 10 METODE DEVIDE AND CONQUER

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

Algoritma Bubble Sort dan Quick Sort

Design and Analysis Algorithm

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

ANALISIS ALGORITMA BINARY SEARCH

Politeknik Elektronika Negeri Surabaya

Pengertian Algoritma Pengurutan

Modul 8 SORTING (PENGURUTAN)

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

Algoritma dan Struktur Data

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 12 & 13

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

METODE DEVIDE AND CONQUER

# TEN Sorting PENDAHULUAN

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006

BAB 2 SORTING (PENGURUTAN)

Agar lebih mudah mengerti, cobalah untuk melakukan hal-hal berikut ini: 1. Bacalah terlebih dahulu ide dasar dari masing-masing algoritma.

Algoritma dan Struktur Data

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Pengantar Analisa Algoritma

ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF

Prpsedur progaram selectioa sort (Dengan program C++)

Simulasi Pengurutan Data Dengan Metode Seleksi

Menghitung Inversion Pada Barisan Dengan Menggunakan Modifikasi Bubble Sort, Insertion Sort, dan Merge Sort

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

SORTING ALGORITMA. Bubble Sort JANUARY 14, 2016

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

Algoritma dan Pemrograman 2 PENGURUTAN

SORTING. Brigida Arie Minartiningtyas, M.Kom

ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU

DATA SORTING. Altien Jonathan Rindengan, S.Si, M.Kom

BAB V SORT. Proses penukaran tidak dapat langsung dilakukan dengan cara : nilai[1] = nilai[2]; nilai[2] = nilai[1];

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

PENGURUTAN DATA 2.1 Definisi Pengurutan 2.2 Metode-metode Pengurutan

BAB II TINJAUAN PUSTAKA

Jurnal Evolusi Volume 5 No evolusi.bsi.ac.id

JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : VOL. 6 NO. 1 Maret 2013

APLIKASI PERENCANA BELANJA DENGAN PENGURUTAN SKALA PRIORITAS BERBASIS ANDROID

BAB I PENDAHULUAN Latar Belakang

PENGURUTAN (SORTING) 1. Introduction 2. Bubble Sort 3. Selection Sort 4. Insertion Sort

Analisis Perbandingan Kompleksitas Algoritma Pengurutan Nilai (Sorting)

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Transkripsi:

Bubble Sort dan Shell-Sort Yuliana Setiowati

Bubble Sort Disebut juga exchange sort : metode yang mengurutkan data dengan cara membandingkan masing2 elemen, kemudian melakukan penukaran bila perlu.

Algoritma 1. i <- 1 2. selama (i < N-1) kerjakan baris 3 s/d 7 3. j <- N-1 4. selama (j>=i) kerjakan baris 5 s/d 6 5. jika (Data[j-1]>Data[j]) maka tukar Data[j-1] dengan Data[j] 6. j <- j - 1 ; 7. i <- i + 1 ;

N = 6 42 35 12 77 5 101 I = 1 J = 5 5 > 101? No No 42 35 12 77 5 101 I = 1 J = 4 77 > 5? 42 35 12 77 5 101

I = 1 J = 3 12 > 5? 42 35 12 5 77 101 I = 1 J = 2 35 > 5? 42 35 5 12 77 101 I = 1 J = 1 42 > 5? 42 5 35 12 77 101

I = 2 J = 5 77 > 101? No No 5 42 35 12 77 101 I = 2 J = 4 12 > 77? No No 5 42 35 12 77 101

I = 2 J = 3 35 > 12? 5 42 35 12 77 101 I = 2 J = 2 42 > 12? 5 42 12 35 77 101

I = 3 J = 4 I = 3 J = 5 77 > 101? No 35 > 77? No I = 3 J = 3 42 > 35? 5 12 42 35 77 101 5 12 42 35 77 101 No No 5 12 42 35 77 101

I = 4 J = 5 77 > 101? No No 5 12 35 42 77 101 I = 4 J = 4 42 > 77? No No 5 12 35 42 77 101

Bubble Sort Analysis BEST CASE: - Array sudah dalam keadaan terurut naik - Jumlah pembandingan key : n-1 - Jumlah swap = 0 - Jumlah pergeseran : 0

Bubble Sort Analysis WORST CASE - Array dalam urutan kebalikannya - Jumlah pembandingan key : (1 + 2 +.. + n-1) = n * (n-1) / 2 - Jumlah swap = (1 + 2 +.. + n-1) = n * (n-1) / 2 - Jumlah pergeseran : 3 * n * (n-1) / 2

Shell Sort

Definisi Metode ini disebut juga dengan metode pertambahan menurun (diminishing increment sort). Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959, sehingga sering disebut dengan Metode Shell Sort. Metode ini mengurutkan data dengan cara membandingkan suatu data dengan data lain yang memiliki jarak tertentu sehingga membentuk sebuah sub-list-, kemudian dilakukan penukaran bila diperlukan

Definisi Jarak yang dipakai didasarkan pada increment value atau sequence number k Misalnya Sequence number yang dipakai adalah 5,3,1. Tidak ada pembuktian di sini bahwa bilanganbilangan tersebut adalah sequence number terbaik Setiap sub-list berisi setiap elemen ke-k dari kumpulan elemen yang asli

Definisi Contoh: Jika k = 5 maka sub-list nya adalah sebagai berikut : - s[0] s[5] s[10]... - s[1] s[6] s[11] - s[2] s[7] s[12] - dst Begitu juga jika k = 3 maka sub-list nya adalah: - s[0] s[3] s[6]... - s[1] s[4] s[7] - dst

Proses Shell Sort Buatlah sub-list yang didasarkan pada jarak (Sequence number) yang dipilih Urutkan masing-masing sub-list tersebut Gabungkan seluruh sub-list Let s see this algorithm in action

Proses Shell Sort Urutkan sekumpulan elemen di bawah ini, misalnya diberikan sequence number : 5, 3, 1 30 62 53 42 17 97 91 38 [0] [1] [2] [3] [4] [5] [6] [7]

Proses Shell Sort ocess k=5 30 62 53 42 17 97 91 38 Step 1: Buat sub list k = 5 S[0] S[5] S[1] S[6] S[2] S[7] S[3] 30 62 53 42 17 97 91 38 [0] [1] [2] [3] [4] [5] [6] [7] Step 2-3: Urutkan sub list & gabungkan S[0] < S[5] OK S[1] < S[6] OK S[2] > S[7] not OK. Tukar 30 62 53 38 42 17 97 91 38 53 [0] [1] [2] [3] [4] [5] [6] [7]

Proses Shell Sort utk k=3 30 62 53 42 17 97 91 38 Step 1: Buat sub list k = 3 S[0] S[3] S[6] S[1] S[4] S[7] S[2] S[5] 30 62 38 42 17 97 91 53 [0] [1] [2] [3] [4] [5] [6] [7] Step 2-3: Urutkan sub list & gabungkan S[0] S[3] S[6] 30, 42, 91 OK S[1] S[4] S[7] 62, 17, 53 not OK SORT them 17, 53, 62 S[2] S[5] 38, 97 OK 30 62 17 38 42 17 53 97 91 53 62 [0] [1] [2] [3] [4] [5] [6] [7]

Shell Sort Process k=1 30 62 53 42 17 97 91 38 Step 1: Buat sub list k =1 S[0] S[1] S[2] S[3] S[4] S[5] S[6] S[7] 30 17 38 42 53 97 91 62 [0] [1] [2] [3] [4] [5] [6] [7] Step 2-3: Urutkan sub list & gabungkan Sorting akan seperti insertion sort 30 Kerjakan 30 17 17 38 42 53 97 62 91 62 97 [0] [1] [2] [3] [4] [5] [6] [7]

Pemilihan Sequence Number Disarankan jarak mula-mula dari data yang akan dibandingkan adalah: N / 2. Pada proses berikutnya, digunakan jarak (N / 2) / 2 atau N / 4. Pada proses berikutnya, digunakan jarak (N / 4) / 2 atau N / 8. Demikian seterusnya sampai jarak yang digunakan adalah 1.

Urutan prosesnya Untuk jarak N/2 : - Data pertama (j=0) dibandingkan dengan data dengan jarak N / 2. Apabila data pertama lebih besar dari data ke N / 2 tersebut maka kedua data tersebut ditukar. - Kemudian data kedua (j=1) dibandingkan dengan jarak yang sama yaitu N / 2. - Demikian seterusnya sampai seluruh data dibandingkan sehingga semua data ke-j selalu lebih kecil daripada data ke-(j + N / 2).

Urutan prosesnya Ulangi langkah-langkah di atas untuk jarak = N / 4 lakukan pembandingan dan pengurutan sehingga semua data ke-j lebih kecil daripada data ke-(j + N / 4). Ulangi langkah-langkah di atas untuk jarak = N / 8 lakukan pembandingan dan pengurutan sehingga semua data ke-j lebih kecil daripada data ke-(j + N / 8). Demikian seterusnya sampai jarak yang digunakan adalah 1.

Algoritma Metode Shell Sort 1. jarak <- N 2. selama (jarak>1) kerjakan 3-12 3. jarak <- jarak / 2 4. Sudah <- 1 5. selama Sudah = 1 kerjakan 6-12 6. Sudah <- 0 7. j <- 0 8. selama (j<n-jarak) kerjakan 9-12 9. i <- j + jarak 10. if (Data[j] > Data[i]) 11. Tukar(&Data[j],&Data[i]) 12. Sudah=1

Analisis Metode Shell Sort Running time dari metode Shell Sort bergantung pada beratnya pemilihan sequence number. Disarankan untuk memilih sequence number dimulai dari N/2, kemudian membaginya lagi dengan 2, seterusnya hingga mencapai 1. Shell sort menggunakan 3 nested loop, untuk merepresentasikan sebuah pengembangan yang substansial terhadap metode insertion sort

Pembandingan Running time (millisecond) antara insertion and Shell N insertion Shellsort 1000 122 11 2000 483 26 4000 1936 61 8000 7950 153 16000 32560 358 Ref: Mark Allan Wiess (Florida International University)