JAVA 예제 : 올림차순으로 정렬된 배열 출력
문제
정수 배열을 입력받아 올림차순으로 정렬된 배열을 출력하는 메서드를 만드시오.
예) int arr = { 5, 3, 4, 2, 1 }
Lineup(arr);
결과: 1 2 3 4 5
힌트 1. 배열을 입력받는 메서드는 다음과 같이 생성하면 된다.
public static void Method(int[] arr)
힌트 2."선택정렬"은 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다.
주어진 배열 중에 최솟값을 찾는다.
-> 그 값은 맨 앞에 위치한 값과 교체한다.
-> 맨 처음 위치를 뺀 나머지 배열을 같은 방법으로 교체한다.
✍ 소스코드
public class ArrayQ {
public static void main(String[] args) {
int[] testArr = {5, 3, 4, 2, 1};
Lineup(testArr);
}
public static void Lineup(int[] arr) {
/*
* 0번째 기준 일 때 1번째부터 마지막번째까지 비교,
* 1번째 기준 일 때 2번째부터 마지막번째까지 비교 ...
*
* 1. arr.length - 1 (마지막 숫자는 최댓값이라서 굳이 비교할 필요가 없다.)
* 2. i랑 j비교 (i기준 그 다음숫자랑 비교하기 위해 j = i + 1)
* 3. 인덱스 바꾸기 (i와 j비교중 j가 더 작은 수라면 j의 수를 i로 바꿔야 한다.)
* 4. 변수 저장공간 만들기 (j번째수를 i에 덮을 때 원래 i번째의 수를 저장하기 위한 변수)
*/
int a1 = 0; // 저장 장소
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if(arr[i] > arr[j]) {
a1 = arr[i]; // i번째 수가 클 때 j번째 수랑 인덱스 바꿔주기
arr[i] = arr[j];
arr[j] = a1;
}
}
}
for (int i = 0; i < arr.length; i++) { // 정렬된 순서대로 출력
System.out.println(arr[i]);
}
}
}
👉 출력 결과
1
2
3
4
5
➕ 배열로 출력하는 법
* java.util.Arrays의 toString() 메소드 사용하기
java.util.Arrays의 toString() 메소드는 파라미터로 배열을 입력받은 후
배열의 값들을 문자열 형태로 바꿔서 리턴해준다.
import java.util.Arrays;
public class ArrayQ {
public static void main(String[] args) {
int[] arr = {75, 32, 14, 20, 111};
System.out.println(lineUp(arr));
}
public static String lineUp(int[] arr) {
int tmp = 0;
for( int i = 0; i < (arr.length - 1); i++) {
for( int j = 0; j < (arr.length - i - 1); j++) {
if (arr[j] > arr[j+1]) {
tmp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = tmp;
}
}
}
return (Arrays.toString(arr));
}
}
👉 출력 결과
[14, 20, 32, 75, 111]
Author And Source
이 문제에 관하여(JAVA 예제 : 올림차순으로 정렬된 배열 출력), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hyun_ha/JAVA-예제-올림차순으로-정렬된-배열-출력저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)