c
user_7597543
java
2 years ago
4.4 kB
3
Indexable
import java.util.Scanner; public class TK4 { static Scanner in = new Scanner(System.in); static int[] lstData=new int[5]; public static void main(String[] args) { int select=0; while (select!=6){ System.out.println("Selamat Datang di Program Simulasi"); System.out.println("Menu:"); System.out.println("1. Random Data"); System.out.println("2. Simulasi Bubble Sort - Ascending"); System.out.println("3. Simulasi Selection Sort - Ascending"); System.out.println("4. Simulasi Bubble Sort - Descending"); System.out.println("5. Simulasi Selection Sort - Descending"); System.out.println("Silakan Pilih Action Anda:"); select = in.nextInt(); switch (select){ case 1: randomData(); break; case 2: BubbleSort(); break; case 3: selectionSort(); break; case 4: BubbleSort(false); break; case 5: selectionSort(false); break; case 6: break; } } } static void randomData(){ System.out.println( "Batas Bawah:"); int minimum=in.nextInt(); System.out.println( "Batas Atas:"); int maksimum=in.nextInt(); for (int i=1;i<=5;i++){ lstData[i-1]= minimum + (int) (Math.random() * (maksimum - minimum + 1)); } printData(); } static void BubbleSort(){ BubbleSort(true); } static void BubbleSort(boolean asc){ for (int i=1;i<lstData.length;i++){ System.out.print("Pass "+ i+ "\n"); for (int j=0;j<lstData.length-i;j++ ){ selectBySort(asc,j); printData(); } System.out.print("\n Result "+ i+ "\n"); printData(); } } static void selectBySort(boolean asc, int currentIndex){ if (asc){ if (lstData[currentIndex]>lstData[currentIndex+1]) swap(currentIndex,currentIndex+1); } else{ if (lstData[currentIndex]<lstData[currentIndex+1]) swap(currentIndex,currentIndex+1); } } static void swap(int index1, int index2 ){ int iTemp; iTemp=lstData[index1]; lstData[index1]=lstData[index2]; lstData[index2]=iTemp; } static void selectionSort(){ selectionSort(true); } static void selectionSort(boolean asc){ for (int i=0;i<lstData.length-1;i++){ System.out.print("\n Pass "+ (i+1) + "\n"); int currentMin=lstData[i]; int currentMinIdx=i; for (int j=i+1;j<lstData.length;j++){ if (asc){ if (currentMin>lstData[j]){ currentMin=lstData[j]; currentMinIdx=j; } } else{ if (currentMin<lstData[j]){ currentMin=lstData[j]; currentMinIdx=j; } } printData(); } if (currentMinIdx!=i){ lstData[currentMinIdx]=lstData[i]; lstData[i]=currentMin; } System.out.print("\n Result "+ (i+1)+ "\n"); printData(); } } static void printData(){ for (int lstDatum : lstData) { System.out.print(lstDatum + " "); } System.out.print("\n"); } }
Editor is loading...