🌏 주제 : 배열 요소를 역순으로 정렬하기
- 교환 횟수 : 요솟수/2 이며, 이 나눗셈에서 나머지는 버립니다.
- 요솟수가 홀수일 때 가운데 요소는 교환할 필요가 없기 때문입니다.
< 요솟수가 n인 배열 요소를 역순으로 정렬하는 알고리즘 코드 >
for (int i = 0; i < n/2; i++)
// a[i]와 a[n - i - 1]의 값을 교환
🌏 문제
- 배열 요소에 값을 읽어 들여 역순으로 정렬
🌏 문제 분석
package Chapter2;
import java.util.Arrays;
import java.util.Scanner;
class Ex2_5 {
// 배열 요소 a[idx1]과 a[idx2]의 값을 바꿈
static void swap(int[] a, int idx1, int idx2) {
int t = a[idx1]; a[idx1] = a[idx2]; a[idx2] = t;
}
//배열 a의 요소를 역순을 정렬
static void reverse(int[]a) {
for (int i = 0; i < a.length / 2; i++)
swap(a, i , a.length - i -1);
}
public static void main(String[] args) {
// 배열 요소에 값을 ㅇ릭어 들여 역순으로 정렬
Scanner scan = new Scanner(System.in);
System.out.print("요솟수: ");
int num = scan.nextInt();
int[] x = new int[num];
for(int i = 0; i < num; i++) {
System.out.print("x[" + i + "]: ");
x[i] = scan.nextInt();
}
reverse(x); // 배열 a의 요소를 역순으로 정렬
System.out.println("요소를 역순으로 정렬했습니다.");
System.out.println("x = " + Arrays.toString(x)); // Arrays.toString 메서드 : 배열의 전체 요솟값을 한번에 표시
} // main
}
--------
<결과>
요솟수: 7
x[0]: 2
x[1]: 5
x[2]: 1
x[3]: 3
x[4]: 9
x[5]: 6
x[6]: 7
요소를 역순으로 정렬했습니다.
x = [7, 6, 9, 3, 1, 5, 2]
'Algorithm > 자료구조와 함께 배우는 알고리즘 (자바편)' 카테고리의 다른 글
03-3(이진 검색) - 이진 검색(자바편) (0) | 2023.02.17 |
---|---|
03-2(선형검색) - 보초법으로 선형 검색 구현하기(자바편) (0) | 2023.02.16 |
01-2(반복) - 직각이등변삼각형 출력하기 (자바편) (0) | 2023.02.07 |
01-2(반복) - 반복 과정에서 조건 판단하기 (자바편) (0) | 2023.02.03 |
01-2(반복) - 자릿수 구하기 (자바편) (0) | 2023.01.31 |