“SORTING II”
NIM 20103054
Kelas : SI-04-B
B. Selection Sort\
Suatu teknik pencarian data dalam array yang akan menelusuri semua elemen
elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan
terlebih dahulu. Kemungkinan terbaik (best case) adalah jika data yang dicari
terletak di indeks array terdepan (elemen array pertama) sehingga waktu yang
dibutuhkan untuk pencarian data sangat sebentar (minimal). Kemungkinan
terburuk (worst case) adalah jika data yang dicari terletak di indeks array
terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk
pencarian data sangat lama (maksimal).
pos_min=j;
}
if (pos_min != i) {
temp = arr[i];
arr[i] =
arr[pos_min];
arr[pos_min] = temp;
}
C. Insertion Sort
Algoritme pengurutan dengan cara menyisipkan data/elemen larik pada
posisi yang tepat. Pencarian posisi yang sesuai dilakukan dengan menyisir
larik. Selama penyisiran larik dilakukan pergeseran elemen larik. Algoritme
pengurutan ini cocok untuk persoalan menyisipkan elemen baru kedalam
sekumpulan elemen yang sudah terurut. Pengurutan dimulai dari data ke-2
sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan
ditempatkan (diinsert) diposisi yang seharusnya. Pada penyisipan elemen,
maka elemen-elemen lain akan bergeser ke belakang.
Pengurutan dengan cara penyisipan :
Anggap elemen ke–1 sampai dengan elemen ke j telah terurut.
Elemen ke i adalah elemen yang akan disisipkan antara elemen yang
telah terurut (1 sampai j) pada posisi yang tepat, misalnya pada p.
Pencarian posisi yang tepat untuk i adalah sebagai berikut :
Simpan l[i] pada suatu variabel temporer, temp.
Geser elemen j ke bekas tempat i kemudian geser elemen j – 1 ke i –
1, dan seterusnya sampai mencapai posisi yang tepat untuk i, yaitu p
Kode Program :
int arr[ ];
int i, j ,ruangTukar, panjangArray;
for (i = 1; i < panjangArray; i++) {
j = i;
while (j > 0 && arr[j - 1] > arr[j])
{ ruangTukar = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] =
ruangTukar; j--;
}
}
TUGAS GUIDED
1. LATIHAN 1
#include <iostream>
using namespace std;
}
for(int i = 0; i < panjangArray; i++)
{ cout << arr[i] << ", ";
}
sSortASC(arr, panjangArray);
cout << "\nAscending : ";
for(int i = 0; i < panjangArray; i++)
{ cout << arr[i] << ", ";
}
sSortDESC(arr, panjangArray);
cout << "\nDescending : ";
for(int i = 0; i < panjangArray; i++)
{ cout << arr[i] << ", ";
}
return 0;
}
Figure 1. Program 1
2. LATIHAN 2
#include <iostream>
using namespace std;
Figure 3. Program 3
#include <iostream>
using namespace std;
float a[5][5];
int baris,kolom,x;
float temp;
void urutdata(){
for(int i = 0; i<x; i++)
{ for(int j = 0; j<x; j+
+){
baris = i;
kolom = j;
for(int k = 0; k<x; k++)
{ for(int l = 0; l<x; l+
+){
if(a[baris][kolom]<a[k][l]){
baris = k;
kolom = l;
}
temp=a[i][j]; a[i]
[j]=a[baris][kolom];
a[baris][kolom]=temp;
}
}
}
}
}
int main()
{
cout<<"Masukan data:
"; cin>>x;
Figure 4. Program 4
#include <iostream>
using namespace std;
int jumlah,i, j;
int tukar;
int arr[50];
descending(jumlah,arr);
cout<<"DESCENDING : ";
for(i=0; i<jumlah; i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
Terdapat 3 metode Sorting yaitu Bubble Sort, Selection Sort, dan Insertion Sort.
Ketiganya memiliki kelebihan dan kekurangannya masing-masing.
Sumber
A.Munir, Rinaldi dan Lidya, Leony. 2016. Algoritma dan Pemrograman dalam