🔍 알고리즘

🔍 알고리즘

[알고리즘] 삽입 정렬 (Insertion Sort)

삽입 정렬 삽입 정렬은 선택 정렬과 유사하지만, 좀 더 효율적인 정렬 알고리즘입니다. 삽입 정렬은 2번째 원소부터 시작하여 그 앞(왼쪽)의 원소들과 비교하여 삽입할 위치를 지정한 후, 원소를 뒤로 옮기고 지정된 자리에 자료를 삽입 하여 정렬하는 알고리즘입니다. 최선의 경우 O(N)이라는 엄청나게 빠른 효율성을 가지고 있어, 다른 정렬 알고리즘의 일부로 사용될 만큼 좋은 정렬 알고리즘입니다. 프로세스 정렬은 2번째 위치(index)의 값을 temp에 저장합니다. temp와 이전에 있는 원소들과 비교하며 삽입해나갑니다. '1'번으로 돌아가 다음 위치(index)의 값을 temp에 저장하고, 반복합니다. 코드 구현 void insertionSort(int[] arr) { for(int index = 1 ; i..

🔍 알고리즘

[알고리즘] 선택 정렬 (Selection Sort)

선택 정렬 선택 정렬은 거품 정렬과 유사한 알고리즘으로, 해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택하는 알고리즘입니다. 선택 정렬과 삽입 정렬을 헷갈려하는 사람들이 종종 있는데, 선택 정렬은 배열에서 해당 자리를 선택하고 그 자리에 오는 값을 찾는 것이라고 생각하면 편합니다. 프로세스 주어진 배열 중에 최소값을 찾습니다. 그 값을 맨 앞에 위치한 값과 교체합니다. (pass) 맨 처음 위치를 뺀 나머지 배열을 같은 방법으로 교체합니다. 코드 구현 void selectionSort(int[] arr) { int indexMin, temp; for (int i = 0; i < arr.length-1; i++) { // 1. indexMin = i; for (int j = i..

🔍 알고리즘

[알고리즘] 거품 정렬 (Bubble Sort)

거품 정렬 거품 정렬은 선택정렬과 유사한 알고리즘으로 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘 입니다. 이름의 유래로는 정렬 과정에서 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어졌다고 합니다. 프로세스 1회전에 첫 번째 원소와 두 번째 원소를, 두 번째 원소와 세 번째 원소를, 세 번째 원소와 네 번째 원소를, ... 이런 식으로 (마지막 - 1)번째 원소와 마지막 원소를 비교하여 조건에 맞지 않는다면 서로 교환합니다. 1회전을 수행하고 나면 가장 큰 원소가 맨 뒤로 이동하므로 2회전에서는 맨 끝에 있는 원소는 정렬에서 제외되고, 2회전을 수행하고 나면 끝에서 두 번째 원소까지는 정렬에서 제외됩니다. 이렇게 정렬을 1회전 수..

harveydent
'🔍 알고리즘' 카테고리의 글 목록