Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

데이터 구조의 정렬 방법 비교

<시간/>

여기서 우리는 몇 가지 정렬 방법을 볼 것입니다. 200개 이상의 정렬 기술이 있습니다. 우리는 그들 중 몇 가지를 볼 것입니다. 일부 정렬 기술은 비교 기반 정렬이고 일부는 비비교 기반 정렬입니다.

비교 기반 정렬 기술에는 버블 정렬, 선택 정렬, 삽입 정렬, 병합 정렬, 퀵 정렬, 힙 정렬 등이 있습니다. 이러한 기술에서 값이 비교되고 서로 다른 단계에서 정렬된 위치에 배치되기 때문에 이러한 기술은 비교 기반 정렬로 간주됩니다. 여기에서 이러한 기술의 시간 복잡도를 볼 수 있습니다.

분석 유형 거품 정렬 선택 정렬 삽입 정렬 병합 정렬 빠른 정렬 힙 정렬
최상의 사례 O(n 2 ) O(n 2 ) O(n) O(로그 n) O(로그 n) O(로그인)
평균 사례 O(n 2 ) O(n 2 ) O(n 2 ) O(로그 n) O(로그 n) O(로그 n)
최악의 경우 O(n 2) O(n 2 ) O(n 2 ) O(로그 n) O(n 2 ) O(로그 n)

일부 정렬 알고리즘은 비비교 기반 알고리즘입니다. 그 중 일부는 기수 정렬, 버킷 정렬, 개수 정렬입니다. 여기에서는 정렬하는 동안 두 요소가 비교되지 않기 때문에 비비교 기반 정렬입니다. 기술이 약간 다릅니다. 이제 다양한 유형의 분석을 기반으로 이들 간의 차이점을 살펴보겠습니다.

분석 유형 기수 정렬(k는 최대 자릿수) 카운팅 정렬(k는 카운트 배열의 크기) 버킷 정렬(k는 버킷 수)
최상의 사례 오(nk) O(n + k) O(n + k)
평균 사례 오(nk) O(n + k) O(n + k)
최악의 경우 오(nk) O(n + k) O(n 2 )

정렬 기술은 다른 매개변수를 사용하여 비교할 수도 있습니다. 일부 정렬 알고리즘은 내부 정렬 알고리즘이고 일부는 외부 정렬 알고리즘입니다. 추가 공간이 필요하지 않은 이러한 알고리즘을 내부 정렬 알고리즘이라고 합니다. 퀵 정렬, 힙 정렬 알고리즘이 제자리에 있습니다. 그러나 병합 정렬은 out-place 정렬 기술입니다.

일부 알고리즘은 온라인이고 일부는 오프라인입니다. 정렬 프로세스가 진행되는 동안 알고리즘이 새 요소를 수락하는 경우 이를 온라인 정렬 알고리즘이라고 합니다. 위에서 언급한 기술 중 삽입 정렬은 온라인 정렬 기술입니다.