Advertisement
Guest User

Untitled

a guest
Nov 20th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.31 KB | None | 0 0
  1. using System;
  2. /*********************************************
  3. * Name File : QuickSort *
  4. * Description : Program QuickSort dalam C# *
  5. *********************************************/
  6.  
  7. // Menggunakan namespace System.
  8. namespace QuickSort_AlifYoga
  9. {
  10. //Membuat kelas.
  11. class QuickSort
  12. {
  13. // Membuat metode utama
  14. static void Main(string[] args)
  15. {
  16. //Pengulangan data
  17. /* Jika menginputkan Y maka dia akan mengulang datanya jika selain Y maka program langsung berhenti */
  18. char ulang = 'Y';
  19. while (ulang == 'Y')
  20. {
  21. Console.WriteLine("Aplikasi Quick Sort Data Alif Yoga");
  22. Console.WriteLine("---------------------------------");
  23.  
  24. Console.WriteLine("Pilihan Menu : ");
  25. Console.WriteLine("1. QuickSort Ascending ");
  26. Console.WriteLine("2. QuickSort Descending");
  27. Console.Write("Silahkan Masukan Pilihan Anda : ");
  28.  
  29. //proses statement switch case
  30. int pilihan = Convert.ToInt32(Console.ReadLine());
  31. switch (pilihan)
  32. {
  33. case 1:
  34. hitungQuickSort_Ascending();
  35. break;
  36. case 2:
  37. hitungQuickSort_Descending();
  38. break;
  39. default:
  40. Console.WriteLine("Anda salah memasukkan datanya cuk!!! wkwkwkwkw");
  41. break;
  42. }
  43. Console.Write("Apakah Anda Ingin Mengulang Prosesnya...??? (Y/N)");
  44. ulang = Convert.ToChar(Console.ReadLine());
  45. //creator program
  46. Console.WriteLine("************************************");
  47. Console.WriteLine("* Author Name : Alif Yoga Darmawan *");
  48. Console.WriteLine("* Author Nim : 1803040020 *");
  49. Console.WriteLine("************************************");
  50. }
  51. }
  52. static public int Partition_Ascending(int[] jumlah, int i, int j)
  53. {
  54. int pivot = jumlah[i];
  55. while (true)
  56. {
  57. while (jumlah[i] < pivot)
  58. i++;
  59. while (jumlah[j] > pivot)
  60. j--;
  61. if (i < j)
  62. {
  63. //swap
  64. int temp = jumlah[j];
  65. jumlah[j] = jumlah[i];
  66. jumlah[i] = temp;
  67. }
  68. else
  69. {
  70. return j;
  71. }
  72. }
  73. }
  74. static public void SortQuick_Ascending(int[] arr, int left, int right)
  75. {
  76. // Rekursif
  77. if (left < right)
  78. {
  79. int pivot = Partition_Ascending(arr, left, right);
  80. if (pivot > 1)
  81. SortQuick_Ascending(arr, left, pivot - 1);
  82. if (pivot + 1 < right)
  83. SortQuick_Ascending(arr, pivot + 1, right);
  84. }
  85. }
  86. static public int Partition_Descending(int[] jumlah, int i, int j)
  87. {
  88. int pivot = jumlah[i];
  89. while (true)
  90. {
  91. while (jumlah[i] > pivot)
  92. i++;
  93. while (jumlah[j] < pivot)
  94. j--;
  95. if (i < j)
  96. {
  97. //swap
  98. int temp = jumlah[j];
  99. jumlah[j] = jumlah[i];
  100. jumlah[i] = temp;
  101. }
  102. else
  103. {
  104. return j;
  105. }
  106. }
  107. }
  108. static public void SortQuick_Descending(int[] arr, int i, int j)
  109. {
  110. // Rekursif
  111. if (i < j)
  112. {
  113. int pivot = Partition_Descending(arr, i, j);
  114. if (pivot > 1)
  115. SortQuick_Descending(arr, i, pivot - 1);
  116. if (pivot + 1 < j)
  117. SortQuick_Descending(arr, pivot + 1, j);
  118. }
  119. }
  120. public static void hitungQuickSort_Ascending()
  121. {
  122. //Mendeteksi jika ada error
  123. try
  124. {
  125. //Membuat variable
  126. int i, j;
  127. //Menginputkan Array
  128. Console.Write("Masukkan Array yang akan diurutkan ya!!! ");
  129. int jumlah = int.Parse(Console.ReadLine());
  130. // ukuran array sesuai inputan pada variabel n.
  131. int[] angka = new int[jumlah];
  132. for (i = 0; i < jumlah; i++)
  133. {
  134. Console.Write("Index {" + (i + 1) + "} : ");
  135. angka[i] = Convert.ToInt16(Console.ReadLine());
  136. }
  137. //Menampilkan Array yang sudah diinputkan
  138. Console.Write("Array yang diinputkan : ");
  139. for (i = 0; i < jumlah; i++)
  140. {
  141. Console.Write(" " + angka[i]);
  142. }
  143. //Hasil dari array yang diurutkan
  144. Console.Write("\nAscending : ");
  145. //Mengurutkan Array
  146. SortQuick_Ascending(angka, 0, jumlah - 1);
  147. for (i = 0; i < jumlah; i++)
  148. {
  149. Console.Write(angka[i] + " ");
  150. }
  151. }
  152. //Memunculkan Pesan Pemberitahuan Kesalahan
  153. catch
  154. {
  155. Console.WriteLine("\nAnda memasukkan data yang salah wkwkwkwkwkkw");
  156. }
  157. finally
  158. {
  159. Console.WriteLine("\nThank You!!!");
  160. }
  161. }
  162.  
  163. public static void hitungQuickSort_Descending()
  164. {
  165. //Mendeteksi jika ada error
  166. try
  167. {
  168. //Membuat variable
  169. int i, j;
  170. //Menginputkan Array
  171. Console.Write("Masukkan Array yang akan diurutkan ya!!! ");
  172. int jumlah = int.Parse(Console.ReadLine());
  173. // ukuran array sesuai inputan pada variabel n.
  174. int[] angka = new int[jumlah];
  175. for (i = 0; i < jumlah; i++)
  176. {
  177. Console.Write("Index {" + (i + 1) + "} : ");
  178. angka[i] = Convert.ToInt16(Console.ReadLine());
  179. }
  180. Console.Write("Array yang diinputkan : ");
  181. for (i = 0; i < jumlah; i++)
  182. {
  183. Console.Write(" " + angka[i]);
  184. }
  185. //Hasil dari array yang diurutkan
  186. Console.Write("\nDescending : ");
  187. //Mengurutkan Array
  188. SortQuick_Descending(angka, 0, jumlah - 1);
  189. for (i = 0; i < jumlah; i++)
  190. {
  191. Console.Write(angka [i] + " ");
  192. }
  193. }
  194. //Memunculkan Pesan Kesalahan
  195. catch
  196. {
  197. Console.WriteLine("\nAnda memasukkan data yang salah wkwkwkwkwkkw");
  198. }
  199. finally
  200. {
  201. Console.WriteLine("\nThank You!!!");
  202. }
  203. }
  204. }
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement