drexqq

[Java, 자바] Sorting(정렬).ver2 본문

공부노트/개인공부!

[Java, 자바] Sorting(정렬).ver2

drexqq 2020. 5. 29. 17:39
728x90
반응형

Java를 이용해서 입력받은 숫자를 정렬해주는 코드를 작성해봤다.

 

코드

package sortingFunc;

import java.util.Scanner;

public class mainClass {
	
	public static void main(String[] args) {
		/*
		 	sorting
		 	
		 	1. 입력
		 	-> 숫자들, 오름차순/내림차순
		 	
		 	2. 처리
		 	-> 오름/내림차순 소팅
		 	
		 	2.5 swap()
		 	
		 	3. 출력
		 	-> 출력
		 	
		 */
		sorting();
	}
	static void sorting() {
		System.out.println("결과");
		System.out.println(java.util.Arrays.toString(userInput()));
	}
	
	static int[] userInput() {
		Scanner sc = new Scanner(System.in);
		
		System.out.println("몇 개의 숫자를 정렬하시겠습니까 ?");
		int numCount = sc.nextInt();
		
		int numArr[] = new int[numCount];
		
		System.out.println("정렬할 숫자를 입력해주세요.");
		for (int i = 0; i < numArr.length; i++) {
			int num = sc.nextInt();
			numArr[i] = num;
		}
		// 오름차순/내림차순 선택
		System.out.println("오름차순(1) / 내림차순(2) 을 선택해주세요.");
		int order = sc.nextInt();
		sc.close();
		proccess(numArr, order);
		return numArr;
	}
	
	static int[] proccess(int arr[], int ad) {
		// 오름,내림차순
		boolean b = (ad == 1) ? true : false;
		// 스왑
		swap(arr, b);
		
		return arr;
	}
	
	static int[] swap(int arr[], boolean b) {
		int temp;
		String msg = (b)?"오름차순을 선택하였습니다":"내림차순을 선택하였습니다.";
		System.out.println(msg);
		for (int i = 0; i < arr.length-1; i++) {		
			for (int j = i + 1; j < arr.length; j++) {
				// 오름차순
				if (b) {
					if (arr[i] > arr[j]) {
						temp = arr[i];
						arr[i] = arr[j];
						arr[j] = temp;
					}
				}
				else {
					if (arr[i] < arr[j]) {
						temp = arr[i];
						arr[i] = arr[j];
						arr[j] = temp;
					}
				}
				
			}
		}
		return arr;
	}
	
	
}
728x90
반응형
Comments