+ All Categories
Home > Documents > Simple Sorting Techniques -...

Simple Sorting Techniques -...

Date post: 09-Aug-2019
Category:
Upload: vuongdat
View: 212 times
Download: 0 times
Share this document with a friend
25
Simple Sorting Techniques DIK-013 Data Structure Diploma 3 Years in Informatics Management Irvanizam Zamanhuri, M.Sc Computer Science Study Program Syiah Kuala University http://www.informatika.unsyiah.ac.id/irvanizam Email: [email protected]
Transcript
Page 1: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Simple Sorting TechniquesDIK-013 Data Structure

Diploma 3 Years in Informatics Management

Irvanizam Zamanhuri, M.ScComputer Science Study ProgramSyiah Kuala Universityhttp://www.informatika.unsyiah.ac.id/irvanizamEmail: [email protected]

Page 2: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Sorting Techniqueo In general, we can classify the sorting technique into

two categories.- Elementary sorting methods- Advanced sorting methods.

o Elementary sorting methods are: o Elementary sorting methods are: - bubble sort- selection sort - insertion sort

q Advanced sorting methods are:- shell sort- quick sort- merge sort- Radix sort

Page 3: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Bubble Sorto Bubble sort is a simple sorting algorithm that works by

repeatedly stepping through the list to be sorted, comparing each pair of adjacent items and swapping them if they are in the wrong order.

o The pass through the list is repeated until no swaps are needed, which indicates that the list is sorted.are needed, which indicates that the list is sorted.

o The algorithm gets its name from the way smaller elements "bubble" to the top of the list.

o Because it only uses comparisons to operate on elements, it is a comparison sort.

Page 4: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Bubble Sort Algorithm (1/2)q Perbandingan data dilakukan dari posisi pertama

atau posisi terakhir bergeser satu persatu sampai semua data dibandingkan.

q Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1 maka algoritma pengurutan 0 sampai dengan N-1 maka algoritma pengurutan dengan metode bubble sort adalah sebagai berikut:

Page 5: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Bubble Sort Algorithm (2/2)1. Bandingkan posisi data i = 0 dan j = 1.

2. Jika data diposisi i lebih besar daripada data diposisi j, maka data diposisi i ditukar dengan data diposisi j (swap). Jika tidak penukaran posisi tidak dilakukan.

3. Kemudian, lakukan perbandingan data diposisi i = 1 dan 3. Kemudian, lakukan perbandingan data diposisi i = 1 dan data diposisi j = 2. Lakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan j = N-1.

4. Ulangi langkah 1, 2 dan 3 untuk data diposisi 0 sampai dengan data diposisi N-2, karena data di posisi N-1 adalah data dengan nilai terbesar. Untuk tahap selanjutnya data yang dibandingkan akan semakin berkurang sebab data dengan nilai yang lebih besar akan terposisi dibagian sebelah kanan data.

Page 6: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Exampleq Let us take the array of numbers "5 1 4 2 8", and sort the

array from lowest number to greatest number using bubble sort algorithm.

q In each step, elements written in bold are being compared.

compared.

q First Pass:( 5 1 4 2 8 ) → ( 1 5 4 2 8 ), Here, algorithm compares the first two elements, and swaps them.( 1 5 4 2 8 ) → ( 1 4 5 2 8 ), Swap since 5 > 4( 1 4 5 2 8 ) → ( 1 4 2 5 8 ), Swap since 5 > 2( 1 4 2 5 8 ) → ( 1 4 2 5 8 ), Now, since these elements are already in order (8 > 5), algorithm does not swap them.

Page 7: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Continueq Second Pass:

( 1 4 2 5 8 ) → ( 1 4 2 5 8 )( 1 4 2 5 8 ) → ( 1 2 4 5 8 ), Swap since 4 > 2( 1 2 4 5 8 ) → ( 1 2 4 5 8 )( 1 2 4 5 8 ) → ( 1 2 4 5 8 )Now, the array is already sorted, but our algorithm does not

→ →

Now, the array is already sorted, but our algorithm does not know if it is completed. The algorithm needs one whole pass without any swap to know it is sorted.

q Third Pass:( 1 2 4 5 8 ) → ( 1 2 4 5 8 )( 1 2 4 5 8 ) → ( 1 2 4 5 8 )( 1 2 4 5 8 ) → ( 1 2 4 5 8 )( 1 2 4 5 8 ) → ( 1 2 4 5 8 )Finally, the array is sorted, and the algorithm can terminate.

Page 8: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan
Page 9: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Implementation in Cvoid bubblesort(int arr[]) {

int i,j;for (i = N; --i>=0;) {

for (j = 0; j<i; j++) {for (j = 0; j<i; j++) {if (arr[j] > arr[j+1]) {

int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;

}}

}}

Page 10: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Performanceq Bubble sort has worst-case and

average complexity both О(n2), where n is the number of items being sorted.

q its O(n2) complexity means it is q its O(n2) complexity means it is far too inefficient for use on lists having more than a few elements.

Page 11: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Selection Sort

q Selection sort merupakan perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan.

q Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dimulai dari data dengan mencari nilai data terkecil dimulai dari data diposisi 0 hingga diposisi N-1.

q Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1 maka algoritma pengurutan dengan metode selection sort adalah sebagai berikut:

Page 12: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Algoritma• Cari data terkecil dalam interval j = 0 sampai

dengan j = N-1

• Jika pada posisi pos ditemukan data yang terkecil, tukarkan data diposisi pos dengan data di posisi i jika k.k.

• Ulangi langkah 1 dan 2 dengan j = j+i sampai dengan j = N-1, dan seterusnya sampai j = N - 1.

Page 13: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Example

Page 14: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Animasi

Page 15: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Implementation in Cvoid selectionsort(int arr[]) {

int i,j;for (i = 0; i < N; i++) {

int min = arr[i];int pos = i;for (j = i; j < N; j++) {

if (arr[j] < min) { /* Cari nilai yang terkecil */if (arr[j] < min) { /* Cari nilai yang terkecil */min = arr[j];pos = j;

}}if(i!=pos) { /* Tukar nilai terkecil ke arr[i] jika pos tdk sama i */

int temp = arr[i];arr[i] = arr[pos];arr[pos] = temp;

}}

}

Page 16: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Performanceq It has O(n2) complexity, making it inefficient on

large lists, and generally performs worse than the similar insertion sort.

q Selection sort is noted for its simplicity, and also has performance advantages over more complicated performance advantages over more complicated algorithms in certain situations.

Page 17: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Insertion Sort• Insertion sort is a simple sorting algorithm,

a comparison sort in which the sorted array (or list) is built one entry at a time.

• Metode pengurutan selection sort sering dipakai oleh orang saat bermain kartu bridge dalam orang saat bermain kartu bridge dalam mengurutkan kartunya, yaitu dengan cara menyisip kartu yang lebih kecil ke urutan sebelum posisi kartu yang dibandingkannya.

Page 18: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Example

Page 19: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Animasi

Page 20: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Implementation in Cvoid bubblesort(int arr[]) {

int i,j;for (i = N; --i>=0;) {

for (j = 0; j<i; j++) {for (j = 0; j<i; j++) {if (arr[j] > arr[j+1]) {

int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;

}}

}}

Page 21: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Performance (1/2)q The best case input is an array that is already

sorted. In this case insertion sort has a linear running time (i.e., O(n)).

q During each iteration, the first remaining element of the input is only compared with the right-most the input is only compared with the right-most element of the sorted subsection of the array.

q The worst case input is an array sorted in reverse order. In this case every iteration of the inner loop will scan and shift the entire sorted subsection of the array before inserting the next element.

q For this case insertion sort has a quadratic running time (i.e., O(n2)).

Page 22: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Performance (2/2)q The average case is also quadratic (O(n2)), which

makes insertion sort impractical for sorting large arrays.

q However, insertion sort is one of the fastest algorithms for sorting very small arrays, even faster algorithms for sorting very small arrays, even faster than quick sort.

Page 23: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Advantages (1/2)• Simple implementation

• Efficient for (quite) small data sets

• Adaptive, i.e. efficient for data sets that are already substantially sorted: the time complexity is O(n + d), where d is the number of inversionsO(n + d), where d is the number of inversions

• More efficient in practice than most other simple quadratic, i.e. O(n2) algorithms such as selection sort or bubble sort; the best case (nearly sorted input) is O(n)

Page 24: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Advanteges (2/2)• Stable, i.e. does not change the relative order of

elements with equal keys

• In-place, i.e. only requires a constant amount O(1) of additional memory space

• Online, i.e. can sort a list as it receives it• Online, i.e. can sort a list as it receives it

Page 25: Simple Sorting Techniques - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/irvanizam/teaching/SD/ds-08.pdfLakukan langkah 2, begitu juga untuk data berikutnya hingga i = N-2 dan

Referenceo http://www.informatika.unsyiah.ac.id/tfa/ds/bubblesort.pdfo http://www.informatika.unsyiah.ac.id/tfa/ds/selectionsort.pdfo http://en.wikipedia.org/wiki/Insertion_sorto http://en.wikipedia.org/wiki/Bubble_sorto http://en.wikipedia.org/wiki/Selection_sort


Recommended