The Packet explains the sorting operations defined in the header algorithm with an example of each to have a better understanding.
Sorting operations:
1)is_sorted(): The function checks and returns true if the given sequence is sorted into ascending order else returns false.
Syntax: is_sorted (Iterator pointing to first, iterator pointing to last );
Example:
#include
#include
using namespace std;
int main()
{
int arr[] = { 5, 8, 9, 2 };
int n1=(sizeof(arr) / sizeof(arr[0]))-1;
int n2=(sizeof(arr) / sizeof(arr[0]));
if (is_sorted(arr, arr + n1))
{
cout << "The given array is sorted in the given range"<<endl;
}
if(!is_sorted(arr,arr+n2))
{
cout << "The given array is not sorted in the given range"<<endl;
}
}
2)is_sorted_until(): The function checks and returns the first unsorted element in the given sequence and if the sequence is sorted then returns an iterator pointing to the last.
Syntax: is_sorted_until (Iterator pointing to first, iterator pointing to last );
Example:
#include
#include
using namespace std;
int main()
{
int arr[] = {5,8,9,2};
int n=(sizeof(arr) / sizeof(arr[0]));
int* x=is_sorted_until(arr, arr + n);
cout<< *x;
}
3)sort() :sorts the given sequence into ascending order
Syntax: sort(Iterator pointing to first, iterator pointing to last) //for ascending order
sort(Iterator pointing to first , iterator pointing to last, greater()); //for descending order
Example:
#include
#include<bits/stdc++.h>
using namespace std;
int main()
{
int arr[] = {5,8,9,2};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n); // For descending order - sort(arr, arr + n, greater());
cout <<"Sorted array is:"<<endl;
for (int i = 0; i < n; ++i)
cout << arr[i] << " ";
return 0;
}
4) partial_sort(): sorts the first n elements of a range in such a way that half of the sequence is sorted and the other half is unsorted.
Syntax: partial_sort(Iterator pointing to first, iterator pointing to the middle element, iterator pointing to last)
Example:
#include
#include
#include
using namespace std;
int main()
{
vector arr = { 5,8,5,9,10 };
vector::iterator i;
partial_sort(arr.begin(), arr.begin() + 3, arr.end());
for (i = arr.begin(); i != arr.end(); ++i) {
cout << *i << " ";
}
Hope this packet helps you.
Submitted by Timsal Zehra Rizvi (Zehra)
Download packets of source code on Coders Packet
Comments