Which sorting algorithm does the STL sort uses to sort elements? Is it always the same or different for different sets of data.
Go through this :
You can find detailed explanation here .
https://www.quora.com/Which-sorting-algorithm-is-used-in-the-C++-sort-function
It uses Introsort which is a combination on heap sort and quick sort.Worst case complexity is O(NlogN)
Actually if you are looking for a standard there’s no requirement for a particular algorithm but it has to be stable. So , one might say it is implementation defined.
It uses Introsort which is a combination on heap sort and quick sort.Worst case complexity is O(NlogN)
Actually if you are looking for a standard there’s no requirement for a particular algorithm but it has to be stable and must has a complexity O(nlogn). So , one might say it is implementation defined.
There are three methods under Sorting Algorithms for STL,following are :
a> sort.
b> is_sorted.
c> partial_sort.
you need to implement them according to the data given :
implementation methods for these three sorting algorithms are :
a>
This function of the STL, sorts the contents of the given range. There are two version of sort() :
sort(start_iterator, end_iterator ) : sorts the range defined by iterators start_iterator and end_iterator in ascending order.
sort(start_iterator, end_iterator, compare_function) : this also sorts the given range but you can define how the sorting should be done by compare_function.
b>
partial_sort() sorts first half elements in the given range, the other half elements remain as they was initially. partial_sort() also has two variations:
partial_sort(start, middle, end ) : sorts the range from start to end in such a way that the elements before middle are in ascending order and are the smallest elements in the range.
partial_sort(start, middle, end, compare_function) : sorts the range from start to end in such a way that the elements before middle are sorted with the help of compare_function and are the smallest elements in the range.
c>
This function of the STL, returns true if the given range is sorted. There are two version of is_sorted() :
is_sorted(start_iterator, end_iterator) : Checks the range defined by iterators start_iterator and end_iterator in ascending order.
is_sorted(start_iterator, end_iterator, compare_function) : It also checks the given range but you can define how the sorting must be done.
Hope it cleared out your query.
thankyou…
it uses intro sort,a combination of quick and heap sort.
you can also use “qsort”.
check this function here for more details http://www.cplusplus.com/reference/cstdlib/qsort/