배열 정렬 개요
정렬 : 데이터를 원하는 기준에 따라 순차적으로 나열하는 것
- 내림차순 정렬 : 큰 데이터가 앞에 나오도록 나열하는 것 ( 성적순, 최신순, 인기순, ... )
- 오름차순 정렬 : 작은 데이터가 앞에 나오도록 나열하는것 ( 이름순, 가격낮은순, ... )
정렬의 목표 : 사용자가 원하는 데이터에 부합하도록 정리하는 과정
정렬의 종류
선택 정렬 (Selection Sort)
버블 정렬 (Bubble Sort)
삽입 정렬 (Insertion Sort)
선택 정렬
가장 작은 데이터를 지속적으로 앞에 있는 데이터와 교체하며 데이터를 정렬한다.
-> 최소값 찾기
-> 데이터 위치 변경
Q. 선택 정렬 구현해보기
package array;
public class Test15 {
public static void main(String[] args) {
// 입력
int[] data = new int[] { 3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48 };
// 출력
System.out.print("[");
for (int i = 0; i < data.length; i++) {
System.out.print(data[i]);
if (i < data.length - 1) {// 마지막 데이터가 아니라면
System.out.print(" , ");
}
}
System.out.print("]");
System.out.println();
// 선택 정렬(SELECTION SORT)
for (int k = 0; k < data.length - 1; k++) {
// 최소값 찾기
int minIndex = k;// k번 위치가 가장 작다고 생각
for (int i = k + 1; i < data.length; i++) {
if (data[minIndex] > data[i]) {// 더 작은 데이터가 발견되었다면
minIndex = i;// 위치 정보를 변경
}
}
// 교체(swap) : minIndex와 k번 위치의 데이터를 교체
int temp = data[minIndex];
data[minIndex] = data[k];
data[k] = temp;
}
// 출력
System.out.print("[");
for (int i = 0; i < data.length; i++) {
System.out.print(data[i]);
if (i < data.length - 1) {// 마지막 데이터가 아니라면
System.out.print(" , ");
}
}
System.out.print("]");
System.out.println();
}
}
- 정답
[3 , 44 , 38 , 5 , 47 , 15 , 36 , 26 , 27 , 2 , 46 , 4 , 19 , 50 , 48]
[2 , 3 , 4 , 5 , 15 , 19 , 26 , 27 , 36 , 38 , 44 , 46 , 47 , 48 , 50]
'Java 웹 개발' 카테고리의 다른 글
21.08.27 - 웹 개발 입문 13일차 (0) | 2021.08.29 |
---|---|
21.08.26 - 웹 개발 입문 12일차 (0) | 2021.08.26 |
21.08.24 - 웹 개발 입문 10일차 (0) | 2021.08.24 |
21.08.23 - 웹 개발 입문 9일차 (0) | 2021.08.23 |
21.08.20 - 웹 개발 입문 8일차 (0) | 2021.08.20 |