삽입 정렬 (Insertion Sort)
·
알고리즘 (with JAVA)/기본 알고리즘
1. 개념 설명(1) 삽입 정렬은 인덱스 0번 위치 원소부터 시작하여 뒤 원소들과 비교하고 삽입할 위치를 지정한 후,  원소를 뒤로 옮기고 지정된 자리에 자료를 삽입하는 알고리즘이다. (2) 삽입 정렬은 선택 정렬과 유사하지만, 좀 더 효율적인 알고리즘이다. (3) 선택 정렬과 함께 인간에게 뭔가를 정렬하라고 하면 무의식적으로 사용하는 대표적인 알고리즘이다.    2. 과정 - 실제로 수행되는 과정이며, 삽입하는 동시에 정렬한다.     3. 코드1234567891011121314151617public class InsertSort {    public static void main(String[] args) {        int[] A = { 7, 2, 8, 10, 1 };               ..
병합 정렬 (Merge Sort)
·
알고리즘 (with JAVA)/기본 알고리즘
1. 개념 설명 (1) 병합 정렬은 분할 정복 방법으로 퀵 정렬처럼 배열을 두 부분으로 원소 개수가 0 또는 1이 될때까지 쪼개고 쪼개서 크기를 비교해 병합해 나간다. (2) 병합 정렬은 합병 정렬이라고도 부른다. (3) 병합 정렬은 대표적인 분할 정복 알고리즘으로 존 폰 노이만의 천재성을 엿볼 수 있는 알고리즘이다. 2. 과정 - 실제로 수행되는 과정이며, 대표적인 분할 정복 방식이다. 3. 코드 123456789101112131415161718192021222324252627282930313233public class MergeSort { static int[] A = { 38, 27, 43, 9, 3, 82, 10 }; static int[] tmp = new int[A.length]; public..
선택 정렬 (Selection Sort)
·
알고리즘 (with JAVA)/기본 알고리즘
1. 개념 설명(1) 선택 정렬은 배열의 인덱스 위치를 정한 후, 가장 작은 원소를 넣으며 순차적으로 정렬하는 알고리즘이다.    2. 과정- 실제로 수행되는 과정이며, 맨 앞 인덱스부터 위치를 정한 후, 가장 작은 원소를 찾아서 넣는다.     3. 코드123456789101112131415161718192021public class SelectionSort{    public static void main(String[] args) {        int[] A = { 7, 2, 8, 10, 1 };                for(int i=0; iA.length-1;  i++) {            int index = i;                        for(int j=i+1; ..
퀵 정렬 (Quick Sort)
·
알고리즘 (with JAVA)/기본 알고리즘
1. 개념 설명(1) 퀵 정렬은 분할 정복(divide and conquer) 방법을 통해 정렬하는 알고리즘이다. (2) 방식은 적절한 원소 하나를 기준(pivot)으로 삼아 그보다 작은 것을 앞으로 빼내고 피벗 뒤로 옮겨작은 것, 큰 것으로 나눈 뒤 나누어진 각각에서 다시 피벗을 잡고 정렬해서 각각의 크기가 0이나 1이 될 때까지 정렬한다.( 설명 글보다 아래 과정과 코드를 하나씩 써보며 이해하는 것을 추천합니다. ) (3) 퀵 정렬은 컴퓨터로 가장 많이 구현된 정렬 알고리즘 중 하나이다.   2. 과정    3. 코드123456789101112131415161718192021222324252627282930313233343536373839404142public class QuickSort {    p..