Bubble Sort
Bubble sort adalah Memindahkan elemen yang sekarang dengan
elemen yang berikutnya, jika elemen sekarang , elemen berikutnya, maka tukar.
Dengan proses pengurutan Data paling akhir dibandingkan
dengan data di depannya, jika ternyata lebih kecil maka tukar. Dan pengecekan
yang sama dilakukan terhadap data yang selanjutnya sampai dengan data yang
paling awal.
Selection Sort
Selection Sort adalah Membandingkan elemen yang sekarang
dengan elemen yang berikutnya sampai dengan elemen yang terakhir. Jika
ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat
posisinya dan kemudian ditukar. Dan begitu seterusnya.
Insertion Sort
Insertion Sort adalah Pengurutan dilakukan dengan cara
membandingkan data ke-I (dimana I dimulai dari data ke-2 sampai dengan data
terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka
data tersebut disisipkan ke depan sesuai posisi yang seharusnya.
Program
int i, n, j, min_index, temp;
int[]
arr = new int[20];
//tentukan
banyaknya data (n)
Console.Write("Jumlah Data : ");
n = Convert.ToInt32(Console.ReadLine());
//input
data ke array sebanyak n data
for
(i = 0; i <= n - 1; i++)
{
Console.Write("Data ke {0} : ", i + 1);
arr[i] = Convert.ToInt32(Console.ReadLine());
}
//Cetak
data sebelum proses pengurutan
Console.Write("\nData sebelum proses pengurutan\n");
for
(i = 0; i <= n - 1; i++)
{
Console.Write("{0} ", arr[i]);
}
//---------------------------------------------------------------
Console.Write("\n");
Console.WriteLine("METODE PENGURUTAN DATA");
Console.WriteLine("1. METODE BUBBLE SORT");
Console.WriteLine("2. METODE SELECTION SORT");
Console.WriteLine("3. METODE INSERTION SORT");
Console.WriteLine("--------------------------");
Console.Write("Pilihan : ");
int
pilihan = Convert.ToInt32(Console.ReadLine());
switch
(pilihan)
{
case
1:
//proses
bubble sort
for
(int pass = 1; pass <= n - 1; pass++)
{
for (int k = 0; k <= n - 2;
k++)
{
if (arr[k] > arr[k + 1])
{
int Swap;
Swap = arr[k];
arr[k] = arr[k
+ 1];
arr[k + 1] =
Swap;
}
}
}
break;
case
2:
//proses
selection sort
for
(j = 0; j <= n - 2; j++)
{
min_index = j;
for (i = j + 1; i <= n - 1; i++)
{
if (arr[i] < arr[min_index])
{
min_index = i;
}
}
temp = arr[j];
arr[j] =
arr[min_index];
arr[min_index] = temp;
}
break;
case
3:
//PROSES
Insertion Sort
j = 0;
for
(i = 1; i <= n - 1; i++)
{
temp = arr[i];
j = i - 1;
while ((j >= 0) && (arr[j] >= temp))
{
arr[j + 1] =
arr[j];
j--;
}
arr[j + 1] = temp;
}
break;
}
//Cetak
data sebelum proses pengurutan
Console.WriteLine();
Console.WriteLine("Data sesudah proses pengurutan ");
for
(i = 0; i <= n - 1; i++)
{
Console.Write("{0} ", arr[i]);
}
Console.ReadKey();
No comments:
Post a Comment