博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
课堂练习之检测水军
阅读量:4702 次
发布时间:2019-06-10

本文共 1033 字,大约阅读时间需要 3 分钟。

一、实验题目与设计思路

1、题目:

三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。

如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

2、设计思路

   首先这个题目有有一个前提就是在总帖数一定的情况下,这些帖子里面有一半以上的帖子都设计到一个ID,这个ID就是水军,为了制止这个水军,就要检测出这个水军,那么我们定义一个数组,数组里面的数字定为水军的ID,在这个数组里面查找出在数组里出现半数以上的这个ID,要求时间复杂度为o(n),意思就是只能有一层for循环,按照老师上课讲的采用消消乐的方式,两个不一样的就消去,因为水军的帖子数超过半数,那么消到最后剩下的就是水军,然后在输出这个水军的ID。

二、源代码

1 // shuiwang.cpp : Defines the entry point for the console application. 2 // 3  4 #include "stdafx.h" 5 #include "stdio.h" 6  7  8 int main(int argc, char* argv[]) 9 {10     int a[10000];11     int tiezishu; 12     int i,j,k=1;13     int shui;14     printf("请输入帖子总数:");15     scanf("%d",&tiezishu);16     printf("\n");17     for(i=0;i

 

三、运行结果截图

 

四、心得体会

每一个题目的设计实现有很多种方法,有笨的方法,有简单的方法,有最优化的方法,也有复杂度比较大的方法,这次老师要求我们用时间复杂度比较低的方法来实现,但是首先我想到的还是最笨的方法来实现,以前对程序的时间复杂度并没有要求,只要能够实现了题目的要求就好了,程序实现了也没有想过优化,但是这次深刻的体会到了,一个好的程序代码精简但是功能强大。话又说回来,一个好的程序设计的难度也是比较高的,但是我们要这样的锻炼下去,我相信慢慢的我们的能力就会提高很大。

转载于:https://www.cnblogs.com/hanshidiguo/p/4445762.html

你可能感兴趣的文章
Building Tablet PC Applications ROB JARRETT
查看>>
Adobe® Reader®.插件开发
查看>>
【POJ 3461】Oulipo
查看>>
Alpha 冲刺 (5/10)
查看>>
使用Siege进行WEB压力测试
查看>>
斑马为什么有条纹?
查看>>
android多层树形结构列表学习笔记
查看>>
Android_去掉EditText控件周围橙色高亮区域
查看>>
《构建之法》第一、二、十六章阅读笔记
查看>>
arrow:让Python的日期与时间变的更好
查看>>
(转)Excel的 OleDb 连接串的格式(连接Excel 2003-2013)
查看>>
Java并发编程
查看>>
Git Stash用法
查看>>
sql server 2008学习8 sql server存储和索引结构
查看>>
Jquery radio选中
查看>>
memcached 细究(三)
查看>>
RSA System.Security.Cryptography.CryptographicException
查看>>
webservice整合spring cxf
查看>>
[解题报告] 100 - The 3n + 1 problem
查看>>
Entity Framework 学习高级篇1—改善EF代码的方法(上)
查看>>