/*
本文系「人工智能安全」(微信公众号)原创,转载请联系本文作者(同博客作者)。
欢迎你转发分享至朋友圈,并给予「关注、星标、点赞」三连支持。互相欣赏,互相批判。
我是一名有诗人气质的网络安全工程师
期待与你的思想交流碰撞出智慧的花火
水木清华
2020-03-23
输入整型数组和排序标识,对其元素按照升序或降序进行排序
*/
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
//数组法
//升序排序或降序排序的函数接口
void Ascending_Descending_Sorting(int num)
{
    int number; //输入整数
    int pIntegerArray[num]; //存储整数的数组
    int iSortFlag; //排序标识
    for (int i = 0; i < num; i++)
    {
        cin >> number;
        pIntegerArray[i] = number;
    }
    cin >> iSortFlag;
    //数组的元素排序(从小到大)
    sort(pIntegerArray, pIntegerArray + num);
    //排序标识为 0,顺序输出
    if (iSortFlag == 0)
    {
        for (int i = 0; i < num; i++)
        {
            cout << pIntegerArray[i] << ' ';
        }
        cout << endl;
    }
    //排序标识为 1,逆序输出
    else if (iSortFlag == 1)
    {
        for (int i = num - 1; i >= 0; i--)
        {
            cout << pIntegerArray[i] << ' ';
        }
        cout << endl;
    }
    return;
}
//主函数
int main()
{
    int num;
    while (cin >> num)
    {
        Ascending_Descending_Sorting(num);
    }
    return 0;
}
/*
//向量法
//升序排序或降序排序的函数接口
void Ascending_Descending_Sorting(int num)
{
    int number; //输入整数
    vector <int> vec; //存储整数的向量
    int iSortFlag; //排序标识:0 表示按升序,1 表示按降序
    for (int i = 0; i < num; i++)
    {
        cin >> number;
        vec.push_back(number);
    }
    cin >> iSortFlag;
    //向量的元素排序(从小到大)
    sort(vec.begin(), vec.end());
    //排序标识为 0,顺序输出
    if (iSortFlag == 0)
    {
        for (int i = 0; i < num; i++)
        {
            cout << vec[i] << ' ';
        }
        cout << endl;
    }
    //排序标识为 1,逆序输出
    else if (iSortFlag == 1)
    {
        for (int i = num - 1; i >= 0; i--)
        {
            cout << vec[i] << ' ';
        }
        cout << endl;
    }
    return;
}
//主函数
int main()
{
    int num;
    while (cin >> num)
    {
        Ascending_Descending_Sorting(num);
    }
    return 0;
}
*/