关闭

九度OJ 1202

标签: 冒泡排序C++九度OJ
411人阅读 评论(0) 收藏 举报
分类:

题目意思是,输入n,表示n个数,然后输入这n个数,最后输出这从小到大的n个数。

这道排序题因为数量规模在1~100之间,所以几乎用所有的排序算法都不会超时,我这里用的是这样的方法,类似冒泡排序。

首先第一轮循环,将每一个数字与后面的数字进行比较,如果它的值比后面的值要大,则进行交换。否则顺序保持不变。这样在O(n^2)的数量级上就可求解出来。

这样一道简单的排序题,我还是wrong了两次,主体算法没有问题,问题出在没看清题目。题目要求可以输入多组数据,所以排完一组数之后要紧接着接受用户的第二次输入while(cin>>n)来实现。

#include <iostream>
using namespace std;

int main(){
    int n;
    int a[100];
    while(cin>>n){
        for(int i=0;i<n;i++){
            cin>>a[i];
        }
        for(int i=0;i<n-1;i++){
            for(int j=i+1;j<n;j++){
                int temp;
                if(a[i]>a[j]){
                    temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                }
            }
        }
        for(int i=0;i<n;i++)
            cout<<a[i]<<" ";
        cout<<endl;
    }
    return 0;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:113053次
    • 积分:3287
    • 等级:
    • 排名:第10286名
    • 原创:211篇
    • 转载:17篇
    • 译文:0篇
    • 评论:51条
    最新评论