• 0080-简单的排序


    题目

    简单的排序
    难度级别:A; 运行时间限制:1000ms; 运行空间限制:256000KB; 代码长度限制:2000000B
    试题描述

    输入n个数,将n个数按从大到小的顺序输出(n<=10000).

    输入
    第一行输入一个数n,表示有n个数;
    第二行输入n个数。
    输出
    输出排序后的n个数,两两之间用一个空格隔开。(最后有空格)
    输入示例
    5
    7 9 13 5 16
    输出示例
    16 13 9 7 5

    分析

      不知道您是否看过我0075题的题解,如果看过了,您就会知道有系统排序,那就太简单了。

      同时,排序的方法也很多,系统排序、选择排序、冒泡排序、“快速”排序、桶排序、堆排序、栈排序……

      不过,这道题想让我们了解的是选择排序。大概方法就是两重循环判断当前下标的数和当前下标+1的数谁大,再根据题目要求判断是否交换。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int a[10005],n;
    int main()
    {
    	scanf("%d",&n);
    	for(int i=0;i<n;i++) scanf("%d",&a[i]);
    	for(int i=0;i<n;i++) for(int j=i+1;j<n;j++)/*确定要比较两个数的下标*/ if(a[i]<a[j])/*从大到小排序,所以让大的在前面。*/ swap(a[i],a[j]);//C+++特有交换函数。
    	for(int i=0;i<n;i++) printf("%d ",a[i]);
    	return 0;
    }
  • 相关阅读:
    codeforces 169 div2 C
    poj 1062(最短路)
    sgu 118
    sgu 101
    poj 2446二分图匹配
    ural 1129 (求数据)
    C#中抽象类和接口的区别(转)
    在.net(C# or vb.net)中,Appplication.Exit 还是 Form.Close有什么不同?
    一道爱出的题目,就是前面两个数相加 用递归方法实现
    C#冒泡排序
  • 原文地址:https://www.cnblogs.com/DARTH-VADER-EMPIRE/p/9879315.html
Copyright © 2020-2023  润新知