- 바로 옆에 있는 값과 비교해서 더 작은 값을 앞으로 옮기는 방법
- "가장 비효율적"
- 버블정렬의 시간 복잡도는 O(N^2);
선택정렬과 버블정렬의 시간복잡도는 같은데 왜 버블정렬이 가장 비효율적인지?
- 버블정렬은 옆에 있는 숫자와 계속해서 비교해야하고 선택정렬은 한 번만 비교하면 된다.
문제
- 다음의 숫자들을 오름차순으로 정렬하는 프로그램을 작성하시오.
- 1, 10, 5, 9, 8, 3, 2, 6, 7, 4
소스 코드
package com.company;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i,j, temp;
int arr[] = new int[10];
for(int k=0; k<arr.length; k++) {
arr[k] = sc.nextInt();
}
for(i=0; i<arr.length; i++) {
for(j=0; j<9-i; j++) {
if(arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(i=0; i<10; i++) {
System.out.print(arr[i] + " ");
}
}
}
출력 결과
'5. 알고리즘 > 5_2 실전' 카테고리의 다른 글
[알고리즘] JAVA 힙 정렬 (Heap Sort) 알고리즘 (0) | 2020.02.16 |
---|---|
[알고리즘] JAVA 병합 정렬 (Merge Sort) 알고리즘 (0) | 2020.02.15 |
[알고리즘] JAVA 퀵 정렬 (Quick Sort) 알고리즘 (0) | 2020.02.15 |
[알고리즘] JAVA 삽입 정렬 (Insert Sort) 알고리즘 (0) | 2020.02.13 |
[알고리즘] JAVA 선택 정렬 (Select Sort) 알고리즘 (0) | 2020.02.13 |