站点图标 陌路寒暄

数组排序

数组排序

时间: 1ms        内存:128M

描述:

输入5个未排序的整数,对其进行排序,然后从大到小输出这5个数
在下面代码的基础上完成,提交时只提交begin所在行和end所在行之间的代码。
#include <iostream>
using namespace std;
int main()
{
 int a[5];
 int i;
 for(i=0;i<5;i++)   //为数组元素赋值
cin>>a[i];
 
 //对数组元素排序后从大到小输出
  //-----begin-------
  
 
//-----end--------
 return 0;
}

输入:

5个未排序的整数

输出:

5个从大到小的有序数

示例输入:

2 5 1 3 4

示例输出:

5 4 3 2 1 

提示:

参考答案(内存最优[1096]):

#include<stdio.h>
int main()
{
    int i,t,j,a[5];
    for(i=0; i<5; i++)scanf("%d",&a[i]);
    for(j=0; j<4; j++)
        for(i=0; i<4-j; i++)
        {
            if(a[i]<a[i+1])
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
            }
        }
    for(i=0; i<5; i++)printf("%d ",a[i]);
    return 0;
}

参考答案(时间最优[0]):

#include <iostream>
using namespace std;
int main()
{
 int a[5];
 int i;
 for(i=0;i<5;i++)   //为数组元素赋值
    cin>>a[i];
 
 //对数组元素排序后从大到小输出
  //-----begin-------
  int j;
  int t;
  for(i=0;i<4;i++)   //从大到小排序
	  for(j=0;j<4-i;j++)
		  if(a[j]<a[j+1]) //如果前面的元素比后面相邻的元素小,则进行交换
		  {
		     t=a[j];
			 a[j]=a[j+1];
			 a[j+1]=t;
		  }

 for(i=0;i<5;i++)   //正向输出从大到小排序后的数组元素
    cout<<a[i]<<" "; 
 
 //-----end--------
 return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

退出移动版