Struktur Data
NIM: 044813483
1. Buatlah coding pengurutan data dari terkecil hingga terbesar dari data berikut (a1,
a2, a3, a4, a5, a6) tentukan sendiri nilai a1 sampai a6. Urutkan dengan menggunakan
algoritma Merge-sort? Kemudian anda analisa kinerja algoritma tersebut
Jawab :
class MergeSort {
}
n [left] = Temp;
left++;
start_right++;
}
}
}
public static void main(String [] args){
int n [] = {19,4,7,20,15,11};
System.out.print("\nurutan angka awal sebelum Pengurutan ");
}
}
2. Buatlah coding pengurutan data dari terkecil hingga terbesar dari data berikut (a1,
a2, a3, a4, a5, a6) tentukan sendiri nilai a1 sampai a6. Urutkan dengan menggunakan
algoritma Counting-sort? Kemudian anda analisa kinerja algoritma tersebut?
class CountingSort {
void sort (int arr[]) {
int n = arr.length;
int output [] = new int [n];
int count [] = new int [256];
for(int i = 0; i < 256; ++i)
count[i] = 0;
for (int i = 0; i < 256; ++i)
count[i] = 0;
for( int i = 0; i < n; ++i)
++count[arr[i]];
for (int i = 1; i < 255; i++)
count[i] += count[i-1];
for(int i = 0; i < n; ++i)
{
output[count[arr[i]]-1] = arr[i];
--count[arr[i]];
}
System.arraycopy(output, 0, arr, 0, n);
}
public static void main(String args[]) {
CountingSort ob = new CountingSort ();
int arr[] = {2,10,15,6,25,1};
System.out.println("\nAngka Sebelum Di urutkan");
for(int i =0; i < arr.length; i++)
System.out.print(arr[i]+" ");
ob.sort(arr);
System.out.print("\nAngka Setelah Di Proses Di urutkan");
for(int i = 0; i < arr.length; i++)
System.out.print(arr[i]+" ");
}
}
kinerja algoritma Counting sort
Counting sort adalah algoritma pengurutan yang mengurutkan elemen array dengan
menghitung jumlah kemunculan setiap elemen unik dalam array. Hitungan disimpan
dalam larik bantu dan pengurutan dilakukan dengan memetakan hitungan sebagai
indeks larik bantu.
3. - Di countArray[] , simpan jumlah setiap elemen unik dari array input pada
indeksnya masing-masing.
- Misalnya: Jumlah elemen 2 dalam array input adalah 2. Jadi, simpan 2 pada indeks 2
di countArray[] . Demikian pula diatas , jumlah elemen 5 dalam larik masukan adalah
1 , maka simpan 1 pada indeks 5 di countArray[]
5. Temukan indeks setiap elemen array asli dalam array hitungan. Ini memberikan
jumlah kumulatif. Tempatkan elemen pada indeks yang dihitung seperti yang
ditunjukkan pada gambar di bawah.
5. Setelah menempatkan setiap elemen pada posisi yang benar, kurangi hitungannya
satu per satu.