WHCSRL 技术网

华为机试HJ101:对数组元素按照升序或降序进行排序

作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

题目描述:

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

输入描述:

第一行输入数组元素个数
第二行输入待排序的数组,每个数用空格隔开
第三行输入一个整数0或1。0代表升序排序,1代表降序排序

输出描述:

输出排好序的数字

示例:

输入:

8
1 2 4 9 3 55 64 25
0

输出:

1 2 3 4 9 25 55 64

解题思路:

这题比较简单。cmpdes用来降序,cmpasc用来升序,对vector容器的内容进行sort排序,升序降序由输入决定,解决。

测试代码:

  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. using namespace std;
  5. // 降序
  6. bool cmpdes(int a,int b)
  7. {
  8. return a>b;
  9. }
  10. //升序
  11. bool cmpasc(int a,int b)
  12. {
  13. return a<b;
  14. }
  15. int main()
  16. {
  17. int num;
  18. while(cin>>num)
  19. {
  20. vector<int> v;
  21. for(int i=0;i<num;++i)
  22. {
  23. int temp;
  24. cin>>temp;
  25. v.push_back(temp);
  26. }
  27. int flag;
  28. cin>>flag;
  29. if(flag)
  30. {
  31. sort(v.begin(),v.end(),cmpdes);
  32. }
  33. else{
  34. sort(v.begin(),v.end(),cmpasc);
  35. }
  36. for(auto i:v)
  37. {
  38. cout<<i<<" ";
  39. }
  40. cout<<endl;
  41. }
  42. return 0;
  43. }
推荐阅读