c
user_7597543
java
3 years ago
4.4 kB
7
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...