본문 바로가기
728x90
반응형

sorting5

[Algorithm] 정렬 - 퀵 정렬(Quick Sort) 안녕하세요. J4J입니다. 이번 포스팅은 정렬 알고리즘 중 퀵 정렬에 대해 적어보는 시간을 가져보려고 합니다. 퀵 정렬이란? 퀵 정렬은 분할 정복법(Divide and Conquer)이 사용되는 정렬 방법으로 pivot이라는 리스트 안의 한 원소를 기준으로 좌측에는 pivot보다 작은 원소, 우측에는 pivot보다 큰 원소로 분할시켜 정렬하는 방식을 사용합니다. 예를 들어 길이가 5인 배열에 원소 값이 {3, 1, 15, 11, 7}이 저장되어 있다면 정렬되는 방식은 다음과 같습니다. 1-1. 정복 단계를 거치며 pivot 값을 구합니다. 1-2. pivot값은 7이 되며 pivot을 기준으로 작은 원소인 {3, 1}, 큰 원소인 {11, 15}로 분할시킵니다. 2-1. {3, 1} 배열에 정복 단계를 .. 2021. 1. 10.
[Algorithm] 정렬 - 합병 정렬(Merge sort) 안녕하세요. J4J입니다. 이번 포스팅은 정렬 알고리즘 중 합병 정렬에 대해 적어보는 시간을 가져보려고 합니다. 합병 정렬이란? 합병 정렬은 분할 정복법(Divide and Conquer)이 사용되는 정렬 방법으로 저장되어 있는 값들을 모두 분할시킨 뒤 정복을 통해 결합할 때 값들을 정렬해주는 방식을 사용합니다. 예를 들어 길이가 5인 배열이 있다고 가정하면 정렬되는 방식은 다음과 같습니다. (길이가 같은 값은 `를 추가시켜 구분합니다.) 1-1. 길이가 5인 배열을 반으로 나누어 길이가 3, 2인 배열로 분할 시킵니다. 2-1. 길이가 3이 된 배열을 반으로 나누어 길이가 2`, 1인 배열로 분할시킵니다. 2-2. 길이가 2가 된 배열을 반으로 나누어 길이가 1`, 1``인 배열로 분할시킵니다. 3-1.. 2021. 1. 9.
[Algorithm] 정렬 - 삽입 정렬(Insertion Sort) 안녕하세요. J4J입니다. 이번 포스팅은 정렬 알고리즘 중 삽입 정렬에 대해 적어보는 시간을 가져보려고 합니다. 삽입 정렬이란? 삽입 정렬은 매 회전마다 현재 인덱스의 값이 왼쪽에 존재하는 인덱스의 값보다 작을 경우 위치를 바꾸며 정렬해주는 방식입니다. 하지만 작지 않을 경우에는 현재 턴을 종료하여 다음 턴으로 넘어갑니다. 왜냐하면 이미 지나온 인덱스들은 정렬이 되어있어 특정 인덱스에서 값이 작지 않다면 왼쪽에 존재하는 나머지 값들과 비교했을 때도 작지 않기 때문입니다. 예를 들어 길이가 5인 배열이 있다고 가정하면 정렬되는 방식은 다음과 같습니다. 1-1. 1번 인덱스의 값이 0번 인덱스의 값보다 작을 시 위치를 변경합니다. 2-1. 2번 인덱스의 값이 1번 인덱스의 값보다 작을 시 위치를 변경합니다... 2021. 1. 9.
[Algorithm] 정렬 - 선택 정렬(Selection Sort) 안녕하세요. J4J입니다. 이번 포스팅은 정렬 알고리즘 중 선택 정렬에 대해 적어보는 시간을 가져보려고 합니다. 선택 정렬이란? 선택 정렬은 매 회전마다 인덱스를 탐색하여 최솟값을 처음부터 순서대로 집어넣는 정렬 방식입니다. 예를 들어 길이가 5인 배열이 있다고 가정하면 정렬되는 순서는 다음과 같습니다. 1-1. 0번 인덱스를 임시 최솟값으로 지정합니다. 1-2. 1~4번 인덱스를 탐색하여 임시 최솟값보다 작은 게 존재할 시 0번 인덱스와 위치를 변경합니다. 2-1. 1번 인덱스를 임시 최솟값으로 지정합니다. 2-2. 2~4번 인덱스를 탐색하여 임시 최솟값보다 작은 게 존재할 시 1번 인덱스와 위치를 변경합니다. . . . 4-1. 3번 인덱스를 임시 최솟값으로 지정합니다. 4-2. 4번 인덱스를 탐색하.. 2021. 1. 6.
[Algorithm] 정렬(Sorting) 안녕하세요. J4J입니다. 이번 포스팅은 정렬 알고리즘에 대해 적어보는 시간을 가져보려고 합니다. 정렬 알고리즘이란? 정렬 알고리즘은 배열 등에 저장되어 있는 요소들을 일정한 순서대로 정렬(재 배치) 하는 것을 의미합니다. 예를 들어 배열에 저장되어 있는 정수 값들을 크기가 작은 순서대로 정렬할 때 사용되거나(오름차순 이라고도 하죠) 또는 알파벳으로 이루어진 문자열들을 사전 순서대로 정렬할 때 사용될 수 있습니다. 정렬 알고리즘 종류에는 선택 정렬(selection sort), 삽입 정렬(insertion sort), 퀵 정렬(quick sort), 합병 정렬(merge sort) 외에도 많은 종류들이 존재합니다. 이런 정렬 들 중 퀵 정렬이 가장 흔하게 사용되고는 하는데 그 이유는 정렬을 할 때 가장 .. 2021. 1. 3.
728x90
반응형