JinHee's Board
바뀌기 전 정처기 알고리즘 기출문제를 Java로 풀기 (2) 본문
*정보처리기사 시험이 바뀌기 전에 기출문제로 나왔던 알고리즘 문제를 푸는 글 입니다.
따라서 현재 바뀐 정보처리기사 시험에는 나오는지 안나오는지 알수 없습니다.
[문제]
10개의 숫자를 배열에 저장하고 저장된 숫자를 오름차순으로 정렬되도록 구현하시오.
정렬방식은 선택정렬 입니다.
[풀기]
선택정렬 : 첫번째 숫자를 두번째 숫자부터 마지막 숫자까지 차례대로 비교하여 가장 작은 값은 첫번째로 놓고,
두번째 숫자를 세번재 숫자부터 다시 차례대로 비교하여 정렬하는 방식
8, 5, 2, 6, 4 -(8과 5비교)-> 5, 8, 2, 6, 4 -(5와 2 비교)-> 2, 8, 5, 6, 4 -(2와 6비교)->
2, 8, 5, 6, 4 -(2와 4비교)-> 2, 8, 5, 6, 4 ....(비교반복)
마지막 숫자를 비교할 차례가 되었을때 반복을 끝낸다.
public void algo2(int[] arr) {
int[] list = new int[arr.length];
for(int i = 0; i < list.length; i++) {
list[i] = arr[i]; //배열 깊은복사
}
int startIndex = 0; //시작할 인덱스 변수
do {
for(int i = startIndex+1; i < list.length; i++) {
//값을 비교해서 작은 값인 경우 위치 변경
if(list[i] < list[startIndex]) {
int temp = list[startIndex];
list[startIndex] = list[i];
list[i] = temp;
}
}
startIndex += 1; // 인덱스변수값 1증가
//결과를 보기 위한 반복문
for(int i = 0; i <list.length; i++) {
System.out.print(list[i] + " ");
}
System.out.println();
}while(startIndex < list.length);
// 배열 길이만큼 반복한다.
}
* 선택정렬은 문제없이 진행되었지만 오름차순 정렬이 완료되었음에도 불구하고
시작 인덱스값이 배열길이값과 같을때까지 반복하므로 효율적인 프로그램은 아니다.
'메모 > 코딩 문제풀기&다시보기' 카테고리의 다른 글
바뀌기 전 정처기 알고리즘 기출문제를 Java로 풀기 (3) (0) | 2020.10.10 |
---|---|
하노이탑 이동순서 JAVA 로 풀기 (0) | 2020.10.10 |
바뀌기 전 정처기 알고리즘 기출문제를 Java로 풀기 (1) (0) | 2020.09.30 |
프로그래머스 문제풀이 - 더 맵게 (1) | 2020.09.23 |
프로그래머스 문제풀이 - 가장 큰수 (0) | 2020.09.22 |
Comments