快速排序——模板 洛谷P1177 【模板】快速排序

#include<iostream>
#include<cstdio>
int a[10000001];
using namespace std;
void qsort(int i, int j)
{
    int left = i, right = j;
    int flag = a[(left+ right) / 2];
    int tmp;
    do {
        while (a[left] < flag)        left++;
        while (a[right] > flag)        right--;
        if (left <= right)
        {
            tmp = a[left];
            a[left] = a[right];
            a[right] = tmp;
            left++;
            right--;
        }
    } while (left <= right);
    if (left < j)    qsort(left, j);
    if (right > i)    qsort(i, right);
}
int main()
{
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++)        cin >> a[i];
    qsort(1, n);
    for (int i = 1; i <= n; i++)
        cout << a[i]<<" ";
    return 0;
}

 algorithm自带的sort,sort是升序,

https://www.cnblogs.com/icesunbo/p/11484046.html

https://www.cnblogs.com/buanxu/p/12772700.html

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int a[1000010], n;
int main()
{

    cin >> n;
    for (int i = 0; i <n; i++)
        cin >> a[i];
    sort(a , a + n);
    for (int i = 0; i <n; i++)
        cout << a[i] << " ";
    return 0;
}

降序

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int a[1000010], n;
bool compare(int a, int b)
{
	return a > b;
}
int main()
{

	cin >> n;
	for (int i = 0; i < n; i++)
		cin >> a[i];
	sort(a, a + n,compare);
	for (int i = 0; i < n; i++)
		cout << a[i] << " ";
	return 0;
}