>  기사  >  백엔드 개발  >  C qsort()와 C++ sort()의 차이점

C qsort()와 C++ sort()의 차이점

WBOY
WBOY앞으로
2023-09-20 21:25:021176검색

C qsort()与C++ sort()的区别

여기서 C의 qsort()와 C++의 sort()의 차이점을 살펴보겠습니다.

C 언어는 배열을 정렬하는 데 사용할 수 있는 qsort() 함수를 제공합니다. 함수의 매개변수와 구문은 다음과 같습니다.

void qsort(void *base, size_t num, size_t size, int (*comparator) (const void*, const void*));

이 함수는 배열의 기본 주소, 배열의 요소 수, 배열의 각 항목 크기 및 비교 함수를 허용합니다.

C++에서는 C++ STL에 있는 sort() 함수를 제공합니다. 해당 매개변수와 구문은 아래와 같습니다.

void sort(T first, T last, Compare c);

반복되는 요소의 순서가 유지된다는 보장은 없습니다. 이 목적을 달성하기 위해 C++ STL에서 제공하는 stable_sort를 사용할 수 있습니다.

qsort()와 sort()의 차이점

qsort() in C sort() in C++
빠른 정렬 알고리즘을 사용합니다. introsort를 사용합니다. 이것은 하이브리드 정렬 알고리즘입니다. 서로 다른 구현에서는 서로 다른 알고리즘을 사용합니다. GNU C++ STL은 세 부분으로 구성된 하이브리드 정렬을 사용합니다. 인트로 정렬, 퀵 정렬, 삽입 정렬.
C 표준에서는 이 문제를 언급하지 않습니다.
이 정렬 알고리즘의 복잡성. 이 경우 C++11의 sort() 함수의 복잡도는 O(n logn)입니다. sort() 함수의 일부 이전 버전은 최악의 경우 O(n2) 복잡도를 가졌으나, 평균 경우 복잡도는 O(nlogn)이었습니다. 이런 종류의 실행 시간은 다음과 같습니다. sort() 실행 시간이 qsort()보다 짧습니다. qsort()는 다양한 유형에 대해 충분히 유연하지 않습니다. sort() 실행 시간이 qsort()보다 짧습니다. qsort()는 다양한 유형에 대해 충분히 유연하지 않습니다. sort()는 C 배열, C++ 벡터, C++ 데크 및 기타 컨테이너를 정렬할 수 있습니다. 이 정렬 방법은 데이터에 액세스하기 위해 안전하지 않은 무효 포인터를 사용합니다. 이것은 정렬 기술은 데이터에 액세스하기 위해 안전하지 않은 무효 포인터를 사용할 필요가 없습니다.

위 내용은 C qsort()와 C++ sort()의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제