如何在 ASC 和 DESC 模式下对 C 数组进行排序?

新手上路,请多包涵

我有这个数组:

 array[0] = 18;
array[1] = -10;
array[2] = 2;
array[3] = 4;
array[4] = 6;
array[5] = -12;
array[6] = -8;
array[7] = -6;
array[8] = 4;
array[9] = 13;

如何在 C++ 中以 asc/desc 模式对数组进行排序?

原文由 cpp_best 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 717
2 个回答

要按升序对数组进行排序,请使用:

 #include <algorithm>

int main()
{
   // ...
   std::sort(array, array+n); // where n is the number of elements you want to sort
}

要按降序对其进行排序,请使用

#include <algorithm>
#include <functional>

int main()
{
   // ...
   std::sort(array, array+n, std::greater<int>());
}

原文由 Armen Tsirunyan 发布,翻译遵循 CC BY-SA 4.0 许可协议

#include <iostream>
#include <stdlib.h>
using namespace std;

int main (int argc, char *argv[])
    {
        int num[10]={18,-10,2,4,6,-12,-8,-6,13,-1};
        int temp;

        cout << "Ascending Sort : \n\n";

        for(int i=0; i<=10; i++)
            {
                for(int j=i+1; j<=10; j++)
                    {
                        if(num[i]>num[j])
                            {
                                temp=num[i];
                                num[i]=num[j];
                                num[j]=temp;
                            }
                    }
                cout << num[i] << "\n";
            }

        cout << "\nDescending Sort : \n\n";

        for(int i=0; i<=10; i++)
            {
                for(int j=i+1; j<=10; j++)
                    {
                        if(num[i]<num[j])
                            {
                                temp=num[j];
                                num[j]=num[i];
                                num[i]=temp;
                            }
                    }
                cout << num[i] << "\n";
            }

    return 0;
}

原文由 love 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题