机试指南例2.1排序

题目描述

对输入的n个数进行排序并输出。

输入描述:

    输入的第一行包括一个整数n(1<=n<=100)。
    接下来的一行包括n个整数。

输出描述:

    可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格。
    每组测试数据的结果占一行。

示例1

输入

4
1 4 3 2

输出

1 2 3 4 
代码2.1 使用冒泡排序
#include<stdio.h>
int main()
{
    int n;
    int buf[100];
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=0;i<n;i++)
        {
            scanf("%d",&buf[i]);
        }
        for(int i=0;i<n;i++)         //冒泡排序
        {
            for(int j=0;j<n-1-i;j++)
            {
                if(buf[j]>buf[j+1])
                {
                    int temp=buf[j];
                    buf[j]=buf[j+1];
                    buf[j+1]=temp;
                }
            }
        }
        for(int i=0;i<n;i++)
        {
            printf("%d ",buf[i]);
        }
        printf("\n");
    }
    return 0;
}

  代码2.2  使用C++快速排序库函数

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int n;
    int buf[100];
    while(cin>>n&&n)
    {
        for(int i=0;i<n;i++)
        {
            cin>>buf[i];
        }
        sort(buf,buf+n);    //使用快速排序
        for(int i=0;i<n;i++)
        {
            cout<<buf[i]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

  代码 2.3 定义排序规则实现降序排列

#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int x,int y)
{
    return x>y;
}
int main()
{
    int n;
    int buf[100];
    while(cin>>n&&n)
    {
        for(int i=0;i<n;i++)
        {
            cin>>buf[i];
        }
        sort(buf,buf+n,cmp);
        for(int i=0;i<n;i++)
        {
            cout<<buf[i]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

  

原文地址:https://www.cnblogs.com/qing123tian/p/11109221.html

时间: 2024-08-30 12:59:02

机试指南例2.1排序的相关文章

机试指南例2.2成绩排序

题目描述 有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息. 输入描述: 测试数据有多组,每组输入第一行有一个整数N(N<=1000),接下来的N行包括N个学生的数据. 每个学生的数据包括姓名(长度不超过100的字符串).年龄(整形数).成绩(小于等于100的正数). 输出描述: 将学生信息按成绩进行排序,成绩相同的则按姓名的字母序进行排序. 然后输出学生信息,按照如下格式: 姓名 年龄 成绩

计算机考研机试指南(六) ——栈

机试指南 cha 3 栈的应用 括号匹配问题 1 #include <iostream> 2 #include <stdio.h> 3 #include <algorithm> 4 #include <queue> 5 #include <stack> 6 #include <math.h> 7 #include <string> 8 #include <string.h> 9 #include <std

考研机试真题(一)之排序

转载请标明出处:牟尼的专栏 http://blog.csdn.net/u012027907 题目1202:排序 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:10071 解决:3549 题目描述: 对输入的n个数进行排序并输出. 输入: 输入的第一行包括一个整数n(1<=n<=100). 接下来的一行包括n个整数. 输出: 可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格. 每组测试数据的结果占一行. 样例输入: 4 1 4 3 2 样例输出: 1

机试指南第二章-经典入门-Hash的应用自解

Hash的应用: Hash即散列,不像数据结构与算法中讲的各种Hash方法和冲突处理等过多的阐述,以下主要介绍Hash在机试试题解答中的作用. 例2.5 统计同成绩学生人数 Hash解法AC代码:(一般想到的也是这种解法) #include<cstring> #include<iostream> using namespace std; int grade[105]; int main() { int n, m, index; memset(grade, 0, sizeof(gra

机试指南第二章-经典入门-查找例题自解

查找: 对于查找问题,有难有易.可能只是直接地对某个数字的查找,也可能涉及搜索等相对难度更大的算法.这里先介绍查找的基础概念和方法. 例 2.9 找 x AC代码: #include<cstring> #include<iostream> using namespace std; int num[205]; int main() { int n, m, x; memset(num, 0, sizeof(num)); while (cin >> n) { bool fla

机试指南第六章-搜索-例题自解

枚举: 枚举是最简单也是最直白的搜索方式,它依次尝试搜索空间中所有的解,测试其是否符合条件,若符合则输出答案,否则继续测试下一组解. 例6.1 百鸡问题 #include<iostream> using namespace std; int main() { int n; while (cin >> n) { for (int x = 0; x <= 100; x++) { for (int y = 0; y <= 100 - x; y++) { int z = 100

【算法总结】二叉树(王道机试指南第三章)

我们从二叉树的遍历谈起. 众所周知,在对二叉树的遍历过程中,根据遍历每一个结点的左子树.结点本身.右子树的顺序不同可将对二叉树的遍历方法分为前序遍历.中序遍历.后序遍历.我们摒弃数据结构教科书上复杂的遍历方式,而是使用我们在上一章所重点讨论过的递归程序来简单的实现它. 假设二叉树结点由以下结构体表示: struct Node { Node *lchild;//指向其左儿子结点的指针,当其不存在左儿子时为NULL Node *rchild;//指向其右儿子结点的指针,当其不存在右儿子时为NULL

机试指南第二章-经典入门-贪心例题自解

例2.11 FatMouse's Trade 解题思路 贪心策略.每次都买剩余物品中性价比(即重量价格比)最高的物品,直到该物品被买完或者钱耗尽.若该物品已经被买完,则我们继续在剩余的物品中寻找性价比最高的物品 AC代码 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; struct Thing { double j;

机试指南

1.冒泡排序 1 #include <stdio.h> 2 int main(){ 3 int i,j,n,temp; 4 int a[100]; 5 while(scanf("%d",&n)!=EOF){ 6 for(int i=0;i<n;i++){ 7 scanf("%d",&a[i]); 8 } 9 for(i=0;i<n-1;i++){ 10 for(j=0;j<n-i-1;j++){ 11 if(a[j]&g