请问这道排序题的算法如何理解呢?

img


#include<bits/stdc++.h>
using namespace std;
int num[3];
int cmp(int a, int b)
{
    return a > b;
}
int main()
{
    while(cin >> num[0] >> num[1] >> num[2])
    {
        sort(num, num + 3, cmp);
        cout << num[0] << " " << num[1] << " " << num[2] << endl;
    }
    return 0;
}

请问算法中的sort函数的sort(num, num + n, cmp)的num + n的n是什么呢?请问这段代码的详细过程是怎样的呢?

sort()函数的第一个参数是要排序的数组的起始位置,第二个是结束位置,因为只排三个,所以加3