C ++从最小到最大排序数字

时间:2011-02-24 08:15:31

标签: c++ sorting numbers

如果我让用户输入10个随机数,我想从最小到最大排序它们是使用最基本的C ++语言执行此操作的最佳方法。

6 个答案:

答案 0 :(得分:21)

std::vector<int> numbers;

// get the numbers from the user here.    

std::sort(numbers.begin(), numbers.end());

答案 1 :(得分:14)

#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

int main() {

    vector<int> vec;

    vec.push_back(1);
    vec.push_back(4);
    vec.push_back(3);
    vec.push_back(2);

    sort( vec.begin(), vec.end() );

    for (vector<int>::const_iterator it=vec.begin(); it!=vec.end(); ++it) {
      cout << *it << " ";
    }
    cout << endl;
    return 0;
}

答案 2 :(得分:2)

使用维护排序的结构:std::multiset

#include <iostream>
#include <set>

#include <boost/lexical_cast.hpp>

int main(int argc, char* argv[])
{
  std::multiset<int> set;

  for (int i = 1; i != argc; ++i) {
    set.insert(boost::lexical_cast<int>(argv[i]));
  }

  for (int i: set) { std::cout << i << " "; }
  std::cout << "\n";
}

调用:

$ yourprogram 1 5 4 6 7 82 6 7 8

(注意:参数的数量不受限制)

答案 3 :(得分:0)

这取决于您的要求。如果你只是想对它们进行排序,并且速度只是适度考虑,那么对于如此小的n值(10),插入排序就可以了。快速实施(从头开始),适用于小尺寸。

答案 4 :(得分:0)

    //this is sorting min--->max without pointers
    #include<iostream>
    using namespace std;
    int main()
    {int n;
    cout<<"How much numbers you wanna sort? "<<endl;
    cin>>n;
    int broj[n];
    cout<<"Enter numbers: "<<endl;
    for(int k=0;k<n;k++)
    {
    cin>>broj[k];
    }
    int min=0;
    for(int z=0;z<n;z++)
    {
    loop:
    min=broj[z];

    for(int i=z;i<n;i++)
   {
        if(min<=broj[i])
        {
        }
        else
        {
             min=broj[i];
             broj[i]=broj[z];
             broj[z]=min;
             goto loop;         
         }
   }
   }
   cout<<endl<<"--------------"<<endl;
   for(int j=0;j<n;j++)
   {
   cout<<broj[j]<<endl;
   }
   return 0;
   }

答案 5 :(得分:-7)

你可以自己写一些东西,但是真的应该使用qsort函数。