题解 | #输入整型数组和排序标识#

输入整型数组和排序标识,对其元素按照升序或降序进行排序

https://www.nowcoder.com/practice/dd0c6b26c9e541f5b935047ff4156309

#include <iostream>
#include<string>
#include<vector>
using namespace std;
/*输入整型数组和排序标识,对其元素按照升序或降序进行排序
数据范围: 1≤n≤1000  ,元素大小满足 0≤val≤100000 
输入:第一行输入数组元素个数
第二行输入待排序的数组,每个数用空格隔开
第三行输入一个整数0或1。0代表升序排序,1代表降序排序
*/
void maobao_up(vector<int>& vec) //升序
{
	//冒泡
	int temp;
	for (int i = 0; i < vec.size(); i++)
	{
		for (int j = 1; j < vec.size(); j++)
		{
			if (vec[j - 1]>vec[j])
			{
				temp = vec[j];
				vec[j] = vec[j - 1];
				vec[j - 1] = temp;
			}
		}
	}
}

void maobao_down(vector<int>& vec) //降序
{
	//冒泡
	int temp;
	for (int i = 0; i < vec.size(); i++)
	{
		for (int j = 1; j < vec.size(); j++)
		{
			if (vec[j - 1]<vec[j])
			{
				temp = vec[j];
				vec[j] = vec[j - 1];
				vec[j - 1] = temp;
			}
		}
	}
}
int main()
{
	int x;  //多少数据
	int ibool; //升序还是降序
	int j;
	vector<int> vec;
	cin >> x;
	for (int i = 0; i < x; i++)
	{
		cin >> j;
		vec.push_back(j);
	}
	cin >> ibool;
	if (ibool == 0)  //0表示升序
	{
		//冒泡
		maobao_up(vec);
	}
	else
	{
		maobao_down(vec);
	}
	for (int i = 0; i < vec.size(); i++)
	{
		cout << vec[i] << " ";
	}
	system("pause");
	return 0;
}

全部评论

相关推荐

04-03 15:12
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务