代码编织梦想

问题描述及输入输出如下图:

45f97e0d89f932f841b0534583e6aca9.png

数据范围:

59bc4f6dc965eb4a1e24a361cafdc5eb.png

初步思路:

定义两个数组,a[]用来装输入的值,b[]用来装排序的值

定义一个变量top=1,即每个数起初排序值都为1

在两层for循环中比较a[i]的值,每次第二层for开始前都要把top的值变为1

比较结果是小于,top值+1;大于或等于的情况下,top的值不改变;每次比较结束都把top的值传给对应的b[i]里

初代码:

#include<stdio.h>

int main()
{
    int n,i,j,top;
    int a[100100];
    int b[100100];
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d",&a[i]);

    for(i=1;i<=n;i++)
    {
        top=1;
        for(j=1;j<=n;j++)
        {
            if(a[i]<a[j]) {top++; b[i]=top;}
            else b[i]=top;
        }
    }
    for(i=1;i<=n;i++) 
        printf("%d ",b[i]);
    printf("\n");
    return 0;
}

结果前6个通过,后面4个Time Limit Exceeded,超出时间限制,没有通过。

思考原因,应该是两层for循环在数据量加大后花费的时间太多了,超过了题目要求。

5bab3ed776c5a878668e9c04aa7e9543.png

考虑用函数解决问题,舍弃b[]数组,初次修改如下:

#include<stdio.h>
int n,i,j;
int a[100100];

int s(int x)
{
    int top=1;
    for(i=1;i<=n;i++)
    {
        if(x<a[i]) top=top+1;
        else top=top;
    }
    return top;
}

int main()
{
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d",&a[i]);

    for(j=1;j<=n;j++)
        printf("%d ",s(a[j]));

    printf("\n");
    return 0;
}

结果只是比第一次多了一个正确。。。思考ing虽然用了函数,速度提升了一丢丢,但本质上还是用了两个循环,所以时间成本依旧很高。

10748a7dd80b8acbfc4c76ad26c548e4.png

皱眉思考,在庞大数据下每个a[i]都要重复地相互比较,确实会有很大的浪费,有没有什么办法在两个数比较之后就不再重复比较,并且小的那个数top+1,而大的那个数top保持不变呢?

可恶,想不出来,先放着吧,,,优化代码好难。。。

如果哪位大佬看到此篇文章,那就是咱们的缘分!

请求大佬支援————哭/(ㄒoㄒ)/~~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Jecsiao/article/details/129669110

5月tiobe排行榜:java和c语言正在被超越_钱曙光的博客-爱代码爱编程

自2016年初,Java和C语言就出现了明显的下颓趋势,与去年相比,这两种语言的市场占有率均下滑了6%有余。根据TIOBE的数据显示,原本的Java和C语言使用者纷纷转向了其它编程语言,而且大家并没有特定的偏好,改用哪种编程

2020年6月编程语言排行榜:C语言蝉联榜单第一-爱代码爱编程

IOBE公布了6月份编程语言排行榜。 C语言蝉联榜单第一,随后分别是Java、Python、C++、C#。前20名排行如下: 5月份的时候,C就已经超越Java了,登上第一的宝座,为了重回第一,C语言整整花了5年的时间,上一次C语言排名第一是在2015年。 6月份C语言更是直接用0.8%的优势以及2.82%的上升趋势力压Java,蝉联榜单第一 C语言

TIOBE 2020 年 8 月编程语言排行榜:C语言为何能连续霸榜?-爱代码爱编程

TIOBE公布了2020年8月份最新编程语言排行榜。 C语言蝉联榜单第一,随后分别是Java、Python、C++、C#。前20名排行如下: 5月份的时候,C就已经超越Java了,登上第一的宝座,为了重回第一,C语言整整花了5年的时间,上一次C语言排名第一是在2015年。 6月份C语言更是直接用0.8%的优势以及2.82%的上升趋势力压Java,

2020年12月编程语言排行榜:C语言稳居第一-爱代码爱编程

TIOBE 公布了 2020 年 12 月的编程语言排行榜。C语言依然排行第一,随后分别是Java、Python、C++、C#。前20名排行如下:       TIOBE下个月就将宣布2020年年度编程语言,一年内增长最快的编程语言将获得这个称号,目前来看的话,Python遥遥领先,本年度增长了1.9%,C++增长了0.71%,Groovy增长

2021年1月编程语言排行榜(C语言又第一名)-爱代码爱编程

C语言仍然强势排行第一名,其它编程语言无法超越,所以我们全力以赴学好C语言。 一月头条:Python 荣获 2020 年度编程语言称号     Python 荣获 2020 年度编程语言称号,同时,Python 也是自 TIOBE 榜单发布以来,首款四次获得该奖项的编程语言。Python 在2020年实现了 2.01% 的正增长,紧随其后的是 C++

c语言使用比例远高于python,2019年3月编程语言排行榜:C语言、Python、C++都在增长...-爱代码爱编程

原标题:2019年3月编程语言排行榜:C语言、Python、C++都在增长 程序猿(ID:imkuqin) 编译 原文:https://www.tiobe.com/tiobe-index/ TIOBE 公布了2019年3月编程语言排行榜,排名前十的依然是:Java, C, Python, C++, Visual Basic .NET, C#, J

c语言贪吃蛇添加排行榜,用C语言写贪吃蛇笔记-1-爱代码爱编程

贪吃蛇设计思想要求:1.学完C语言大部分基础知识 2.能坚持看完本文 3.本文发布的只是思想,详细代码请关注本博客下一篇文章(要等博主自己写完哦) 目的:1.学了一年C语言,也是博主对自己的一次考验吧 2.激发广大网友对编程的兴趣(能帮到大家是我的荣幸) 3.增加网站收录量,提升网站排名 程序功能介绍 贪吃蛇游戏是一个经典小游戏,深受众多

c语言贪吃蛇添加排行榜,c语言贪吃蛇排行榜_...12年4月编程语言排行榜 C语言荣归宝座...-爱代码爱编程

12年4月编程语言排行榜 C语言荣归宝座 JPG,902x531,131KB,424_250 C语言在目前的编程语言排行榜上占据头名的位置-全屏显示课程章节 JPG,500x267,232KB,467_250 c语言贪吃蛇问题 JPG,563x280,231KB,504_249 C语言设计之贪吃蛇 JPG,624x532,231KB,29

电脑c语言小游戏,C语言中的一个小游戏的排行榜系统...-爱代码爱编程

我把你的代码改了一下,我已经运行过了,你看看 #include #include #include int play(int suiji); void paihangbang(struct p a[100],int r); struct p { char name[20]; int cishu; }chengji[100]; vo

C语言登顶!|2021年7月编程语言排行榜-爱代码爱编程

极客重生 大家好,这里是极客重生,C语言这个月还是稳坐榜首,语言排行榜从侧面说明当前哪些技术很火,哪些技术在慢慢崛起,哪些技术在慢慢消失,让我们一起来看看这份榜单吧。 数据来自:https://www.tiobe.com/tiobe-index/ 2021 年 7 月 TIOBE 指数 七月头条:C、Java 和 Python 争夺

C语言实现入门级小游戏——扫雷-爱代码爱编程

     上一期咱们用C语言实现了三子棋的小游戏  C语言实现三子棋       今天我们再来写个扫雷的游戏,说起扫雷,相信大家都不陌生,可能许多朋友还是玩扫雷的高手。   其实扫雷和三子棋有许多相似之处,都需要用到数组的知识。   今天的扫雷也是相当有趣的 由于博主是一个编程学习的小白,所以这只是扫雷的初级版,此版本有一些功能还无法实现,在

C语言初学者如何制作一个完整的C语言程序——歌曲排行榜-爱代码爱编程

整个程序采用的是一个链式存储结构,文件选用了文本文件 这是程序的一个结构体结构及全局变量的定义 #include <stdio.h> #include <stdlib.h> #include <string.h> struct Song_Ranking { int ID; //歌曲编号 c

TIOBE 2月编程语言排行榜出炉:Python遥遥领先C语言-爱代码爱编程

在上个月,Python再次摘得年度编程语言宝座,这是Python第五次获得这个奖,其他四次分别是2007年、2010年、2018年和2020年。那么在2月份,各大编程语言又有哪些新变化呢? 一直以来,TIOBE都使用Alexa网络流量排名引擎来作为重要的排名的指数,但在去年12月份,Alexa宣布将在2022年5月1日正式停服。基于此,TIOBE也不得不

c语言之制作带有难度选择,计时,计次,排行榜的猜数字游戏_beerholic_的博客-爱代码爱编程

文章目录 一、程序功能二、代码实现1.运行图片2.代码内容 三、总结 一、程序功能 带有计时,计次,排行榜的简单猜数字游戏 游戏规则: 当规定时间达到后并未猜出数字,视作游戏失败 当规定次数达到后并

上海数字化转型哪家强?这份榜单出炉-爱代码爱编程

近日“工赋®风云榜”工赋上海2022年度评选入围、提名名单公布,得帆信息在众多优秀工业互联网企业和个人评比中脱颖而出,荣获“2022年度风云企业提名奖”,得帆信息创始人兼CEO荣获“2022年度十大先锋人物”。 “工赋®风云榜”评选,是上海推进工业互联网创新发