Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- /*********************************************
- * Name File : QuickSort *
- * Description : Program QuickSort dalam C# *
- *********************************************/
- // Menggunakan namespace System.
- namespace QuickSort_AlifYoga
- {
- //Membuat kelas.
- class QuickSort
- {
- // Membuat metode utama
- static void Main(string[] args)
- {
- //Pengulangan data
- /* Jika menginputkan Y maka dia akan mengulang datanya jika selain Y maka program langsung berhenti */
- char ulang = 'Y';
- while (ulang == 'Y')
- {
- Console.WriteLine("Aplikasi Quick Sort Data Alif Yoga");
- Console.WriteLine("---------------------------------");
- Console.WriteLine("Pilihan Menu : ");
- Console.WriteLine("1. QuickSort Ascending ");
- Console.WriteLine("2. QuickSort Descending");
- Console.Write("Silahkan Masukan Pilihan Anda : ");
- //proses statement switch case
- int pilihan = Convert.ToInt32(Console.ReadLine());
- switch (pilihan)
- {
- case 1:
- hitungQuickSort_Ascending();
- break;
- case 2:
- hitungQuickSort_Descending();
- break;
- default:
- Console.WriteLine("Anda salah memasukkan datanya cuk!!! wkwkwkwkw");
- break;
- }
- Console.Write("Apakah Anda Ingin Mengulang Prosesnya...??? (Y/N)");
- ulang = Convert.ToChar(Console.ReadLine());
- //creator program
- Console.WriteLine("************************************");
- Console.WriteLine("* Author Name : Alif Yoga Darmawan *");
- Console.WriteLine("* Author Nim : 1803040020 *");
- Console.WriteLine("************************************");
- }
- }
- static public int Partition_Ascending(int[] jumlah, int i, int j)
- {
- int pivot = jumlah[i];
- while (true)
- {
- while (jumlah[i] < pivot)
- i++;
- while (jumlah[j] > pivot)
- j--;
- if (i < j)
- {
- //swap
- int temp = jumlah[j];
- jumlah[j] = jumlah[i];
- jumlah[i] = temp;
- }
- else
- {
- return j;
- }
- }
- }
- static public void SortQuick_Ascending(int[] arr, int left, int right)
- {
- // Rekursif
- if (left < right)
- {
- int pivot = Partition_Ascending(arr, left, right);
- if (pivot > 1)
- SortQuick_Ascending(arr, left, pivot - 1);
- if (pivot + 1 < right)
- SortQuick_Ascending(arr, pivot + 1, right);
- }
- }
- static public int Partition_Descending(int[] jumlah, int i, int j)
- {
- int pivot = jumlah[i];
- while (true)
- {
- while (jumlah[i] > pivot)
- i++;
- while (jumlah[j] < pivot)
- j--;
- if (i < j)
- {
- //swap
- int temp = jumlah[j];
- jumlah[j] = jumlah[i];
- jumlah[i] = temp;
- }
- else
- {
- return j;
- }
- }
- }
- static public void SortQuick_Descending(int[] arr, int i, int j)
- {
- // Rekursif
- if (i < j)
- {
- int pivot = Partition_Descending(arr, i, j);
- if (pivot > 1)
- SortQuick_Descending(arr, i, pivot - 1);
- if (pivot + 1 < j)
- SortQuick_Descending(arr, pivot + 1, j);
- }
- }
- public static void hitungQuickSort_Ascending()
- {
- //Mendeteksi jika ada error
- try
- {
- //Membuat variable
- int i, j;
- //Menginputkan Array
- Console.Write("Masukkan Array yang akan diurutkan ya!!! ");
- int jumlah = int.Parse(Console.ReadLine());
- // ukuran array sesuai inputan pada variabel n.
- int[] angka = new int[jumlah];
- for (i = 0; i < jumlah; i++)
- {
- Console.Write("Index {" + (i + 1) + "} : ");
- angka[i] = Convert.ToInt16(Console.ReadLine());
- }
- //Menampilkan Array yang sudah diinputkan
- Console.Write("Array yang diinputkan : ");
- for (i = 0; i < jumlah; i++)
- {
- Console.Write(" " + angka[i]);
- }
- //Hasil dari array yang diurutkan
- Console.Write("\nAscending : ");
- //Mengurutkan Array
- SortQuick_Ascending(angka, 0, jumlah - 1);
- for (i = 0; i < jumlah; i++)
- {
- Console.Write(angka[i] + " ");
- }
- }
- //Memunculkan Pesan Pemberitahuan Kesalahan
- catch
- {
- Console.WriteLine("\nAnda memasukkan data yang salah wkwkwkwkwkkw");
- }
- finally
- {
- Console.WriteLine("\nThank You!!!");
- }
- }
- public static void hitungQuickSort_Descending()
- {
- //Mendeteksi jika ada error
- try
- {
- //Membuat variable
- int i, j;
- //Menginputkan Array
- Console.Write("Masukkan Array yang akan diurutkan ya!!! ");
- int jumlah = int.Parse(Console.ReadLine());
- // ukuran array sesuai inputan pada variabel n.
- int[] angka = new int[jumlah];
- for (i = 0; i < jumlah; i++)
- {
- Console.Write("Index {" + (i + 1) + "} : ");
- angka[i] = Convert.ToInt16(Console.ReadLine());
- }
- Console.Write("Array yang diinputkan : ");
- for (i = 0; i < jumlah; i++)
- {
- Console.Write(" " + angka[i]);
- }
- //Hasil dari array yang diurutkan
- Console.Write("\nDescending : ");
- //Mengurutkan Array
- SortQuick_Descending(angka, 0, jumlah - 1);
- for (i = 0; i < jumlah; i++)
- {
- Console.Write(angka [i] + " ");
- }
- }
- //Memunculkan Pesan Kesalahan
- catch
- {
- Console.WriteLine("\nAnda memasukkan data yang salah wkwkwkwkwkkw");
- }
- finally
- {
- Console.WriteLine("\nThank You!!!");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement