[알고리즘] 선택정렬
선택정렬 선택정렬은 리스트를 모두 훑어서 리스트내 가장 장은 값을 찾아 리스트의 맨 앞으로 옮기며 정렬을 수행하는 방식이다. 다음과 같은 방식으로 처리되는데, 리스트를 훑다가 작은 값이 나오면 해당 index를 비교대상의 기준의 index로 변경하고 다음 루프에서 해당index와 증가된 루프index에 해당하는 리스트 값과…
선택정렬 선택정렬은 리스트를 모두 훑어서 리스트내 가장 장은 값을 찾아 리스트의 맨 앞으로 옮기며 정렬을 수행하는 방식이다. 다음과 같은 방식으로 처리되는데, 리스트를 훑다가 작은 값이 나오면 해당 index를 비교대상의 기준의 index로 변경하고 다음 루프에서 해당index와 증가된 루프index에 해당하는 리스트 값과…
버블정렬 인접한 두 원소간 값 비교만을 통하여 정렬을 수행한다. 1회 정렬 수행시 가장 큰 값이 가장 마지막에 위치함으로 이후부터는 정렬 횟수를 -1씩 감소하여 처리할 수 있다. 최대시간복잡도는 n-1팩토리로 구할 수 있다.
병합정렬 병합 알고리즘을 사용한 정렬로 n/2로 리스트n을 쪼개질때까지 나눈다음 쪼개진 원소간 비교연산 후 병합하는 과정을 거친다. 재귀(splitData)를 사용하여 리스트를 n/2로 쪼개며 쪼개진 데이터를 값 비교 및 병합하는 분할정복(mergeData)을 수행하여 값을 정렬한다. 분할정복이 끝나면 정렬된 리스트를 얻을 수 있다.
삽입정렬 리스트의 2번째 값(index:1)부터 1씩 증가 하면서 해당 index보다 이전의 모든 값들을 순회하며 값 비교를 통한 정렬을 수행한다. 최대 시간복잡도(비교연산 횟수)는 리스트n-1팩토리얼로 구할 수 있으며 실제 복잡도는 구현 로직 내에서 값 비교 연산 횟수를 구하여 확인할 수 있다.