排序实例(冒泡+归并)

来源:互联网 发布:mac快捷键的图形符号 编辑:程序博客网 时间:2024/06/13 22:15

上一个例题,题目出自北航oj   https://buaacoding.cn/problem/15/index

零崎的人间冒险Ⅳ

时间限制: 1000 ms 内存限制: 65536 kb

题目描述

在干掉了guangtou之后,无聊的零崎又去找事了……

说起来零崎前几周学到了一个叫做Apriori算法的东西,其第一步是挑出所有出现频率大于某个给定值的数据。然而作为一个具有一定程度的强(qiǎng )迫(pò)症的人,零崎显然希望先排个序再对其子集进行操作。

于是,现在的任务是简单的升序排列。

输入

多组输入数据,每组两行,第一行为一个整数n。第二行为n个整数。

输出

每组一行,输出n个整数的升序排列,两个整数之间用一个空格隔开。

输入样例

56 5 2 3 1 

输出样例

1 2 3 5 6

冒泡排序方法解决

//冒泡排序#include<iostream>#include<cstdio>#include<cstring>using namespace std;int x[1010];int main(){    int n;    int ans;    while(~scanf("%d",&n))    {        memset(x,0,sizeof(x));        ans=0;        for(int i=0;i<n;i++)        {            scanf("%d",&x[i]);        }        for(int i=0;i<n;i++)        {            for(int j=0;j<n-i-1;j++)            {                if(x[j]>x[j+1])                {                    swap(x[j],x[j+1]);                    ans++;                }            }        }        for(int i=0;i<n;i++)            printf("%d ",x[i]);        printf("\n");    }}

归并排序方法解决

阅读全文
0 0