Language/Java 7

[JAVA] 퀵 정렬 (Quick Sort)

퀵 정렬은 피벗을 기준으로 두개의 부분리스트로 나누어 하나는 피벗보다 작은 값들의 부분리스트, 다른 하나는 피벗보다 큰 값들의 부분리스트로 정렬한 다음, 각 부분리스트에 대해 다시 재귀적으로 수행하여 정렬하는 방법이다. 1. 피벗을 하나 선택한다. 2. 피벗을 기준으로 양쪽에서 피벗보다 큰 값, 혹은 작은 값을 찾는다. 왼쪽에서부터는 피벗보다 큰 값을 찾고, 오른쪽에서 부터는 피벗보다 작은 값을 찾는다. 3. 양 방향에서 찾은 두 원소를 교환한다. 4. 왼쪽에서 탐색하는 위치와 오른쪽에서 탐색하는 위치가 엇갈리지 않을 대 까지 2번으로 돌아가 위 과정을 반복한다. 5. 엇갈린 기점을 기준으로 두 개의 부분리스트로 나누어 1번으로 돌아가 해당 부분리스트의 길이가 1이 아닐 때 까지 1번 과정을 반복한다. ..

Language/Java 2022.12.14

[JAVA] 삽입 정렬 (Insertion Sort)

삽입정렬은 2번째 원소부터 n번째 원소까지 차례로 해당 원소가 위치할 인덱스에 원소를 삽입하는 방식이다. 오름차순으로 정렬할 때, 삽입정렬은 2번째 원소부터 앞의 원소와 비교하는 과정을 통해 적절한 위치에 삽입하고 n번째 원소까지 이 방식을 반복하며 정렬을 진행한다. import java.util.Arrays; class InsertionSort { public static void main(String[] args) { int []arr = {3,7,6,8,4,5,0,2}; int temp; int prev; for (int i = 1; i < arr.length; i++) { //현재 선택된 원소의 값을 임시 변수에 저장 temp = arr[i]; //현재 원소를 기준으로 이전 원소를 탐색하기 위한 ..

Language/Java 2022.12.14

[JAVA] 선택정렬 (Selection Sort)

선택정렬은 한 번의 배열 탐색에서 가장 작은 원소의 위치를 찾고, 그 위치와 배열의 가장 첫 번째 원소부터 차례로 바꿔주는 방식을 사용하는 정렬 방식이다. (오름 차순) 오름차순으로 정렬할 때, 원소를 처음부터 탐색하면서 작은 수를 찾고 그 수를 배열의 첫 번째 원소와 자리를 변경한다. import java.util.Arrays; class SelectionSort { public static void main(String[] args) { int []arr = {3,4,6,8,7,5,0,2}; for(int i = 0; i < arr.length - 1; i++) { //arr.length -1: 마지막 요소는 자연스럽게 정렬됨 //현재 탐색에서 가장 앞의 원소를 초기 값으로 설정 int minInde..

Language/Java 2022.12.14

[JAVA] 거품 정렬 (Bubble Sort)

거품정렬은 두 개의 인접한 원소를 비교하여 정렬하는 방식이다. 정렬 방법 1. 앞에서부터 현재 원소와 바로 다음의 원소를 비교한다. 2. 현재 원소가 다음 원소보다 크면 원소를 교환한다. 3. 다음 원소로 이동하여 해당 원소와 그 다음원소를 비교한다. public class BubbleSort { public static void bubbleSort(int[] arr) { for (int i = 0; i arr[j+1]) { swap(arr, j, j+1); } } } } public static void swap(int[] arr, int src, int ta..

Language/Java 2022.12.09