Notice
Recent Posts
Recent Comments
Link
drexqq
[Java, 자바] Sorting(정렬) - 선택 본문
728x90
반응형
Java의 sorting(정렬)에 대해서 알아보자.
sorting은 선택, 삽입, 버블, 합병, 퀵 총 5종류가 있다.
오늘은 선택 정렬에 대해서 알아보겠다.
선택 정렬은 현재 위치에 들어갈 값을 찾아 정렬하는 방식이다.
현재 위치에 저장 될 값의 크기가 작냐, 크냐에 따라 오름차순 정렬(ascending)과 내림차순(descending)로 구분할 수 있다.
아래 코드를 보자
package main;
import java.util.Scanner;
public class mainClass {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
/*
Sorting (정렬)
숫자의 크기에 따라서 순번대로 배치
오름차순 - 큰값이 뒤로
내림차순 - 큰값이 앞으로
*/
// 정렬할 개수 ?
// 정렬할 개수를 동적할당
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;
}
for (int i = 0; i < numArr.length; i++) {
System.out.println("numArr["+i+"] = "+numArr[i]);
}
// 오름차순/내림차순 선택
System.out.println("오름차순(1) / 내림차순(2) 을 선택해주세요.");
int order = sc.nextInt();
// 정렬
int temp; // swap
if (order == 1) {
System.out.println("오름차순을 선택하셨습니다.");
for (int i = 0; i < numArr.length-1; i++) {
for (int j = i + 1; j < numArr.length; j++) {
// 오름차순
if (numArr[i] > numArr[j]) {
temp = numArr[i];
numArr[i] = numArr[j];
numArr[j] = temp;
}
}
}
}
else if (order == 2) {
System.out.println("내림차순을 선택하셨습니다.");
for (int i = 0; i < numArr.length - 1; i++) {
for (int j = i + 1; j < numArr.length; j++) {
// 내림차순
if (numArr[i] < numArr[j]) {
temp = numArr[i];
numArr[i] = numArr[j];
numArr[j] = temp;
}
}
}
}
// 결과 출력
for (int i = 0; i < numArr.length; i++) {
System.out.println("numArr["+i+"] = "+numArr[i]);
}
sc.close();
}
}
정렬할 숫자의 개수를 받고, 그 개수에 맞는 숫자들을 입력받은 뒤
오름차순, 내림차순을 선택해 그에 맞는 결괏값을 사용자에게 보여주는 코드이다.
728x90
반응형
'Back-End > Java' 카테고리의 다른 글
[Java, 자바] BufferedReader, BufferedWriter (0) | 2020.05.29 |
---|---|
[Java, 자바] 함수(function, method), 가변인수 (0) | 2020.05.27 |
[Java, 자바] String클래스 (0) | 2020.05.26 |
[Java, 자바] wrapperClass (0) | 2020.05.26 |
[Java, 자바] 2차원배열 (0) | 2020.05.26 |
Comments