목록Algorithm/Algorithm (3)
내가 개발해볼게!!
1. 삽입 정렬의 정의 2. 삽입 정렬의 과정 3. BOJ 11399: ATM 1. 삽입 정렬의 정의 데이터를 하나씩 적절한 위치에 삽입시키는 정렬 시간 복잡도 O(n²)로 느린 편이지만 구현이 쉽다 2. 삽입 정렬의 과정 ① 정렬 범위 내에서 최솟값(최댓값)을 찾는다 ② 맨앞의 데이터와 swap한다 ③ 정렬 범위를 축소한다 ④ 남은 정렬 범위가 없을 때까지 ①~③을 반복한다 3. BOJ 11399: ATM public class B11399_ATM { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] arr = new int[N]; int[] nArr = new i..
1. 선택 정렬의 정의 2. 선택 정렬의 과정 3. BOJ 1427: 소트인사이드 1. 선택 정렬의 정의 배열에서 최솟값(또는 최댓값)을 찾아가며 선택하는 정렬 2. 선택 정렬의 과정 ① 정렬 범위 내에서 최솟값(최댓값)을 찾는다 ② 맨앞의 데이터와 swap한다 ③ 정렬 범위를 축소한다 ④ 남은 정렬 범위가 없을 때까지 ①~③을 반복한다 public static void selectionSort(int[] arr){ int index = 0; int len = arr.length; while(index < len){ int min = arr[index]; int minIdx = index; for(int i=index; i
1. 버블 정렬 : 두 인접한 데이터의 크기를 비교하고 swap 연산으로 정렬 1) 시간 복잡도 O(n²)으로 타 정렬 알고리즘보다 오래 걸리는 편. 대신 코드가 간단하다 2) swap 연산 : 두 수의 값을 교환하는 과정. a와 b의 값을 서로 바꾸고 싶을 때 a=b를 바로 해버리면 a에 들어있던 값이 사라져 교환할 수 없게 된다. 따라서 a의 값을 임의의 변수 temp에 저장해두고 a=b를 수행한 뒤 b=temp를 수행해야 한다 public void swap(int[] arr, int i, int j){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } 3) 과정 인접한 값끼리 비교하며 범위 내의 최댓값을 범위의 맨뒤로 보낸다 범위를 배열 전체에서 맨뒤부터..