SW/Java
[용어정리] 선택정렬(Selection Sort), 버블정렬(Bubble Sort)
coderbear_16
2020. 9. 11. 13:00
# 정렬 알고리즘
- selection sort(선택정렬)
배열 중에 가장 작은 원소들을 왼쪽부터 채워나가면서 숫자를 정렬하는 방법
각 회전(Pass)과정이 끝날때마다 앞쪽부터 정렬된 원소로 채워진다.
선택 정렬(Selection Sort)
- 주어진 데이터 중 최소값을 찾음 - 최소값을 맨 앞에 위치한 값과 교환 - 정렬된 데이터를 제외한 나머지 데이터를 같은 방법으로 정렬 - 시간복잡도 : O(n^2) [1회전] [2회전] [3회전] [4회전]
hahahoho5915.tistory.com
ex)
public class SelectionSort {
public static void main(String[] args) {
int[] num = {5, 4, 1, 3, 2};
for(int i=0;i<num.length-1;i++) {
for(int j=i+1;j<num.length;j++) {
if(num[i]>num[j]) {
int temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
}
for(int i=0;i<num.length;i++)
System.out.print(num[i] + " ");
}
}
- bubble sort(버블정렬)
인접한 두개의 원소를 비교하여 가장 큰 원소가 마지막자리로 오게해서 숫자를 정렬하는 방법
각 회전(Pass)과정이 끝날때마다 정렬은 뒤에서부터 하나씩 완료된다.
버블 정렬(Bubble Sort)
- 두 인접한 원소를 검사하여 정렬하는 방법 - 시간복잡도 : O(n^2) [1회전] [2회전] [3회전] - 세번의 회전에 걸쳐 정렬은 완료되었지만 프로그램은 남은 데이터의 비교연산을 계속 처리함. - 정렬은
hahahoho5915.tistory.com
ex)
public class BubbleSort {
public static void main(String[] args) {
int[] num = {5, 4, 1, 3, 2};
for(int i=0;i<num.length-1;i++) {
for(int j=0;j<num.length-1-i;j++) {
if(num[j]>num[j+1]) {
int temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
}
}
}
for(int i=0;i<num.length;i++)
System.out.print(num[i] + " ");
}
}
// 최종적인 결과는 오름차순인 경우 두 정렬 모두 동일하다.
728x90