Algorithem

[알고리즘] 선택정렬

선택정렬 선택정렬은 리스트를 모두 훑어서 리스트내 가장 장은 값을 찾아 리스트의 맨 앞으로 옮기며 정렬을 수행하는 방식이다. 다음과 같은 방식으로 처리되는데, 리스트를 훑다가 작은 값이 나오면 해당 index를 비교대상의 기준의 index로 변경하고 다음 루프에서 해당index와 증가된 루프index에 해당하는 리스트 값과…

[알고리즘] 버블정렬

버블정렬 인접한 두 원소간 값 비교만을 통하여 정렬을 수행한다. 1회 정렬 수행시 가장 큰 값이 가장 마지막에 위치함으로 이후부터는 정렬 횟수를 -1씩 감소하여 처리할 수 있다. 최대시간복잡도는 n-1팩토리로 구할 수 있다.

[알고리즘] 병합정렬

병합정렬 병합 알고리즘을 사용한 정렬로 n/2로 리스트n을 쪼개질때까지 나눈다음 쪼개진 원소간 비교연산 후 병합하는 과정을 거친다. 재귀(splitData)를 사용하여 리스트를 n/2로 쪼개며 쪼개진 데이터를 값 비교 및 병합하는 분할정복(mergeData)을 수행하여 값을 정렬한다. 분할정복이 끝나면 정렬된 리스트를 얻을 수 있다.

[알고리즘] 삽입정렬

삽입정렬 리스트의 2번째 값(index:1)부터 1씩 증가 하면서 해당 index보다 이전의 모든 값들을 순회하며 값 비교를 통한 정렬을 수행한다. 최대 시간복잡도(비교연산 횟수)는 리스트n-1팩토리얼로 구할 수 있으며 실제 복잡도는 구현 로직 내에서 값 비교 연산 횟수를 구하여 확인할 수 있다.