목록Swap (2)
개발 무지렁이

분할정복 알고리즘인 퀵(Quick) 정렬 특정값을 기준으로 큰숫자와 작은숫자로 분할하자 (기준값, pivot) ❓ 분할정복 알고리즘이란 : 분할한 다음 각각 정렬하고 합치면 빠르다. 🕑 시간복잡도: O(N * log(2)N) [ 각 단계에서 N번씩 탐색 * 쪼개지는 깊이 ] [ 평균적으로 반씩 쪼개진다 ] 퀵(Quick) 정렬 코드 구현 1. 피벗을 맨 앞에있는 값으로 잡는다. pivot = A[start] 2. i = start + 1로 잡고 A[i]가 피벗보다 작으면 그냥 넘긴다. i++ 3. j = end로 잡고 A[j]가 피벗보다 크면 그냥 넘긴다. j-- - 엇갈리면 pivot과 swap, i > j - 엇갈리지 않으면 양쪽 인덱스 숫자를 swap 4. 엇갈리면 while문에서 빠져나와 재귀함수..

버블(Bubble) 정렬 이웃한 값을 비교해서 더 작은값을 앞으로 보내자 (한번 돌면 가장 큰값이 가장 뒤로 오게 된다, 뒤부터 정렬) 🕑 시간복잡도: O(N^2) [비교연산 횟수: N-1 + N-2 + N-3 + ... + 1 = (N^2)/2번] 버블(Bubble) 정렬 코드 구현 1. 루프loop를 돌면서 이웃한 값 간의 swap연산으로 정렬한다. 🎯 N이 1000보다 작음으로 시간복잡도가 O(N^2)인 알고리즘을 써도 풀 수 있다. (1억번의 연산 = 1초) import java.util.*; class Main { public static void main(String[] args) { Scanner scannner = new Scanner(System.in); int N = scanner.ne..