CPP-SCNUOJ-Problem P29. [算法课指针] 颜色分类,小白偏题超简单方法

Problem P29. [算法课指针] 颜色分类
给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。

我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。

输入

第一行输入一个整数

n (1≤n≤300) 代表数组的长度。

第二行输入一行数字代表数组nums[i] 为0,1,2,数字与数字之间用空格间开。

输出

输出排序后的数组

#include 
#include 
using namespace std;
int nums[310];
int main()
{
    int n;
    cin >> n;
    int d;
    int i=0;
    while(cin >> d)
    {
        nums[i] = d;
        i++;
    }
    sort(nums, nums+n);
    cout << "[";
    for(int j=0; j<n-1; j++)
    {
        cout << nums[j] << ",";
    }
    cout << nums[n-1] << "]";

    return 0;
}

自我练习,二刷

#include 
#include 
using namespace std;
/*
思路:对数组进行升序排序,直接输出即可

*/
int main()
{
    int n;
    cin >> n;
    int x;
    vector<int> nums;
    while(cin >> x)
    {
        nums.push_back(x);
    }
    sort(nums.begin(), nums.end());//这里是vector,参数不能是(a,a+n)的形式
    //输出
    cout << "[";
    for(int i=0; i<n-1; i++)
    {
        cout << nums[i] << ",";
    }
    cout << nums[n-1] << "]";
//    cout << "Hello world!" << endl;
    return 0;
}

你可能感兴趣的:(算法,c++,数据结构)