[Java] 쉘 정렬 (Shell Sort)
쉘 정렬이란 배열을 특정 간격(gap)으로 묶어서 gap의 자리수 특정 자리수끼리 삽입 정렬 로직을 수행하는 정렬이다. [9, 4, 1, 7, 3, 2, 1, 5, 0, 6, 8] gap : 4 [0, 2, 1, 5, 3, 4, 1, 7, 9, 6, 8] gap : 2 [0, 2, 1, 4, 1, 5, 3, 6, 8, 7, 9] gap : 1 [0, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 import java.util.Arrays; public class ShellSort { public ..
[Java] 버블 정렬 (Bubble Sort)
버블 정렬이란 n번째 값과 n+1 번째 값을 비교하여 Swap한다. 마지막 인덱스부터 정렬된 값이 저장된다. [5, 4, 3, 2, 1] [4, 3, 2, 1, 5] (1회) [3, 2, 1, 4, 5] (2회) [2, 1, 3, 4, 5] (3회) [1, 2, 3, 4, 5] (4회) 정렬 속도 순 : 삽입정렬 > 선택정렬 > 버블정렬 속도 : O(n^2) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import java.util.Arrays; public class BubbleSort { public static void main(String[] args) { int[] arr = {5, 4, 3, 2, 1}; int len = ar..
[Java] 삽입 정렬 (Insertion Sort)
[9, 4, 1, 7, 3, 2, 1] [4, 9, 1, 7, 3, 2, 1] (1회) [1, 4, 9, 7, 3, 2, 1] (2회) [1, 4, 7, 9, 3, 2, 1] (3회) [1, 3, 4, 7, 9, 2, 1] (4회) [1, 2, 3, 4, 7, 9, 1] (5회) [1, 1, 2, 3, 4, 7, 9] (6회) 속도 : O(n^2) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import java.util.Arrays; public class InsertionSort { public static void main(String[] args) { int[] arr = {9, 4, 1, 7, 3, 2, 1}; int le..