关闭

[置顶] 2013年计算机联考真题——确定主元

标签: 计算机考研数据结构
461人阅读 评论(0) 收藏 举报
分类:

这里写图片描述


思路:
首先把主元 确定为A[0],并计数cnt=1。之后从下标为1开始遍历数组,
1.如果A[i] == A[0],cnt++
2.如果不等,则如果cnt>0,cnt–,如果cnt<0,主元设定为A[i],cnt=1。
遍历结束后,再遍历一遍,确定主元的出现的次数,大于n/2,返回主元,否则返回-1


代码如下:

#include <iostream>
using namespace std;

int Majority(int* A, int n)
{
    int majority = A[0];
    int cnt = 1;
    for(int i = 1 ; i < n ; i++){
        if(A[i] == majority){
            cnt++;
        }else{
            if(cnt > 0){
                cnt--;
            }else{
                majority = A[i];
                cnt = 1;
            }
        } 
    }
    cnt = 0;
    for(int i = 0 ; i < n ; i++){
        if(A[i] == majority){
            cnt++;
        }
    }
    if(cnt <= n/2){
        majority = -1;
    }
    return majority;
} 

void Print(int* A,int n)
{
    for(int i = 0 ; i < n ; i++){
        cout<<A[i]<<" ";
    } 
}

int main()
{
    int A[8] = {0,5,5,3,5,7,5,5};
    int B[8] = {0,5,5,3,5,1,5,7};
    int majority = Majority(A,8);
    cout<<"数组A为:"<<endl;
    Print(A,8);
    if(majority == -1){
        cout<<"数组A没有主元"<<endl;
    }else{
        cout<<"数组A主元为:"<<majority<<endl; 
    }

    cout<<"数组B为:"<<endl;
    Print(B,8);
    majority = Majority(B,8);
    if(majority == -1){
        cout<<"数组B没有主元"<<endl;
    }else{
        cout<<"数组B主元为:"<<majority<<endl; 
    }

    return 0;
}

截图为:
这里写图片描述

0
0
查看评论

2014年计算机联考真题——带权路径长度之和

思路如下: 利用层次遍历的思路,记录每层的层数level,对于该层的每个叶节点的带权路径长度 = data*(level-1) 算法如下: //求叶子节点带权路径长度之和 int WPL(BinaryTree* T){ BinaryTree*...
  • qq_30091945
  • qq_30091945
  • 2017-08-27 13:10
  • 434

2010年计算机联考真题——一维数组循环左移

前记从七月份决定开始考研,中间由于听报告,回家复习数学和政治但无论一些时间。自己准备报考山东大学计算机技术的专硕,幸好是数学是考数学二,专业课一直有一门数据结构,这位我的复习节省了很多时间,不想数学一和统考的计算机基础综合的专业复习那么费劲。现在数据结构的复习完全是参照《王道考研系列——2018年数...
  • qq_30091945
  • qq_30091945
  • 2017-08-07 20:17
  • 448

读博士的好处

1.使35岁之前成为正教授、博导成为可能 如果你只是一个本科毕业,在科研单位或大学里,工作5年后晋升中级职称,在5年晋升副高级,然后在5年晋升正高级,这其中晋级的酸甜苦辣太多太多,单位按成果排队,其中恼人的人际关系等等,最快到近四十岁才晋升到正高级,硕士毕业也如此。如果你博士毕业,再到先进的国家做...
  • liyanzhong
  • liyanzhong
  • 2014-12-14 12:26
  • 973

2013年计算机求职总结

版权所有,转载请注明出处,谢谢! http://blog.csdn.net/walkinginthewind/article/details/13000431 找工作是一个长期准备的过程,突击是没什么效果的。准备时间越长,准备就越充分,就越容易拿到好的offer享一下。 一、推荐书籍。我基本上...
  • u012543601
  • u012543601
  • 2014-05-09 14:52
  • 460

2013年计算机考研大纲

一、考察目标: 计算机学科专业基础综合考试涵盖数据机构、计算机组成原理、操作系统和计算机网络等学科专业基础课程。要求考生比较系统地掌握上述专业基础课程的基本概念、基本原理和基本方法,能够综合运用所学的基本原理和基本方法分析、判断和解决有关理论问题和实际问题。 考试形式和试卷结构: ...
  • JiangGuanchu
  • JiangGuanchu
  • 2012-11-12 22:46
  • 509

2013年计算机考研复习计划

第一阶段:基础复习阶段   以指定参考书为主,兼顾笔记,进行专业课的第一轮复习。看书要以理解为主,不必纠缠于细节,并在不懂的知识点处做上标记。   第一步,选择一本难度适宜、内容全面、与考试相关度最大的教材作为主要复习教材。开始时可以把书较详细地看一遍,熟悉内容。   第二步,结合考试题目的深...
  • jiary5201314
  • jiary5201314
  • 2012-09-14 23:02
  • 655

老机房见证90年代以来的计算机发展!

修理网络教室的垃圾电脑,就像参观博物管,整个过程似乎见证了90年代以来的计算机发展。有P3,塞扬, 毒龙,居然还有VIA C3 !昆腾850MB到20G的硬盘,ST,WD……都有。最大,最新的是WD400-LB三星、NCE、创见,HY-PC100 ECC。晕~~~ 服务器内存都来了。真是花...
  • iceashes
  • iceashes
  • 2007-01-23 16:57
  • 324

下半年计算机技术与软件专业技术资格(水平)考试成绩历年公布时间

下半年计算机技术与软件专业技术资格(水平)考试成绩历年公布时间        2012年下半年计算机技术与软件专业技术资格(水平)考试,已经顺利完成,尘埃落定。        最让考生揪心的事情,就是什么时候可...
  • littletigerat
  • littletigerat
  • 2012-11-12 14:02
  • 6341

哈尔滨工业大学计算机考研854真题-哈尔滨工业大学 2017年硕士研究生入学考试试题

真题下载地址:点击打开链接 真题下载地址:http://download.csdn.net/download/jinglisen/10167590 真题下载地址:点击打开链接
  • JingLisen
  • JingLisen
  • 2017-12-20 20:43
  • 620

【Access】2013年计算机等级考试二…

一、基本操作题     在考生文件夹下,“samp1.mdb”数据库文件中已建立表对象“tEmployee”。试按以下操作要求,完成表的编辑:     (1)设置“编号”字段为主键;     (2)设置“年龄”字段的“有效性规则”属性为:大于等于17且小...
  • shantikai
  • shantikai
  • 2015-01-23 21:01
  • 455
    个人资料
    • 访问:155746次
    • 积分:4932
    • 等级:
    • 排名:第6843名
    • 原创:329篇
    • 转载:0篇
    • 译文:0篇
    • 评论:81条
    博客专栏
    最新评论