繁体   English   中英

C ++中的订单号

[英]order numbers in C++

我有这段代码,它从最大的数字开始对数字进行排序,但对我来说有点令人困惑:

    #include <iostream>
using namespace std;

int main()
{
 const int n=5;
 int i, j, t, a[n]={15,9,8,7,5};

 cout << "a[]={";
 for(i=0; i<n; i++) cout << a[i] << " ";
 cout << "} \n\n";

 for(i=0; i<n-1; i++)
   for(j=i+1; j<n; j++)
     if(a[i]>a[j]){
       t=a[i];
       a[i]=a[j];
       a[j]=t;
     }

 cout << "Pas radhitjes inkrementuese \n\n"
      << "a[]={";
 for(i=0; i<n; i++) cout << a[i] << " ";
 cout << "} \n\n";


 cin.get();cin.get();
return 0;
}

从最大/最低编号开始,还有其他方法可以从1个数组中订购编号吗?

std::sort是排序内容时的常用方法

好吧,有选择排序,插入排序,合并排序,快速排序,堆排序等。您可以在网上找到许多有关特定实现的信息。 如果您想要一种简单的方法而不考虑排序算法的实际实现,则可以使用std::sort来实现。

您只需将代码编辑为此

for(i=0; i<n-1; i++)
   for(j=0; j<n-1; j++)

如果您想要更优化的排序,可以使用以下排序算法之一

http://en.wikipedia.org/wiki/Sorting_algorithm

你必须对所有的算法的译码,并解释- http://mathbits.com/mathbits/compsci/arrays/sorting.htm

我建议您尝试所有算法,如果进行教育性学习,它将有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM