资源限制
内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
第一行为一个整数n。
第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
输出一行,按从小到大的顺序输出排序后的数列。
样例输入
5
8 3 6 4 9
样例输出
3 4 6 8 9
采用了冒泡排序
#include <stdio.h>
void BubbleSort(int A[],int n)//冒泡排序
{
int i, j;
int temp;
for(i = 0; i <= n-2; i++)
//{这些括号可以省略
for (j = 0; j <= n-2-i; j++)
//{
if(A[j + 1] < A[j])
{
temp = A[j];
A[j] = A[j + 1];
A[j + 1] = temp;
}
// }
//}
}
int main()
{
int A[200];//题目要求数列元素数目不能超过200
int i;
int n;
scanf("%d",&n);//输入个数
for (i = 0; i < n; i++)//输入元素
{
scanf("%d",&A[i]);
}
BubbleSort(A,n);
for (i = 0; i < n; i++)//输出元素
{
printf("%d ",A[i]);
}
return 0;
}
详细解说:
//题目:给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
//采用数组A[200] ,有n个数,A[n-1]为最后一个数
//头文件
#include<stdio.h> /*standard input output的缩写,意为"标准输入输出",
即通常我们使用输入函数scanf,输出函数printf,scanf和printf是标准输入输出函数,
其头文件为stdio.h,在主函数前也用include命令包含了stdio.h文件。*/
void maopao(int A[],int n)//注意:此处 为A[],不可以为 A[n-1]
{
//定义
int i,j,temp;
//冒泡排序
for(i=0;i<n-1;i++)
{ //外层循环。比较次数,一共有n个数,只要 n-1轮次即可,所以取 0~n-2次 , 也就是i=0;i<n-1;
for(j=0;j<n-1-i;j++)
{//用i<n-1-i,而不用i<n-i,是因为最后剩下的那一个元素没有需要比较的元素了
if(A[j]>A[j+1])
{
temp=A[j+1];
A[j+1]=A[j];
A[j]=temp;
}
}
}
}
int main(){
//定义
int A[200];
int i,n;
scanf("%d",&n) ;//scanf语句此处A[i]需要用 &
//输入
for(i=0;i<n;i++) //也可以为 for(i=0;i<=n-1;i++)
/*先 i=0,然后判断i<n是否成立,成立则进入并执行循环体,最后进行i++操作,
再判断i<n是否成立,成立则继续,否则结束循环体,进入下一步操作
当 i=n-1,满足 i<n成立,执行循环体,而后i++,也就是i=n ,不满足 i<n,结束。
*/
scanf("%d",&A[i]);
maopao(A,n);//注意:此处 为A,不可以为 A[n-1]
//输出
for(i=0;i<n;i++)
printf("%d ",A[i]);//此处A[i]不用&
//此处用 "%d " %d后面空了一格,这样就会输出一个空格,元素就会分开
return 0;//注意:不要漏了return 0;
}
采用dev运行
时间大概0.33S-0.42S
空间大小如下
运行测试:
采用选择排序
#include <stdio.h>
void SelectSort(int A[],int n)//选择排序
{
int i,j,min,temp;
for(i = 0;i <= n-2;i++) //最外层遍历
{
min=i;
for(j = i+1;j <= n-1;j++) //开始找无序区的最小元素
if(A[j] < A[min])
min=j; //记录最小值
if(min!=i)
{
temp=A[i];
A[i]=A[min];
A[min]=temp; //将最小值放到有序区中
}
}
}
int main()
{
int A[200];//题目要求数列元素数目不能超过200
int i;
int n;
scanf("%d",&n);//输入个数
for (i = 0; i < n; i++)//输入元素
{
scanf("%d",&A[i]);
}
SelectSort(A,n);
for (i = 0; i < n; i++)//输出元素
{
printf("%d ",A[i]);
}
return 0;
}
采用dev运行
时间大概0.31S-0.39S
空间大小如下
运行测试