华为一道排序题

简单一道排序题,考倒多少读书人!——从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战就业! /*===================================================================作者:rerli时间:2003-12-17目的:从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战就业! =============================================================== 阅读详情
简单一道排序题,考倒多少读书人!
 ——从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战就业!
    
 大学生早已不是天之骄子,仅仅是一个普通劳动者。

       网上一句顺口溜“本科生象条狗,硕士生满街走,只有博士才能抖一抖”真正恰如其分地说明了这一点。我想许多到深圳求职的,到过宝安北路的深圳人才大市场的大学生朋友会有同感。只要是非休息日,场场爆满,黑压压的人头攒动。就业的残酷性已经到了”学士学士靠边站,硕士硕士中间站,博士博士往前站。听说你是海归派,Hello Hello签合同。“的地步。

      计算机专业的毕业生由于前几年就业形势好,IT整个行业还不错,工资相对高点,所以许多人纷纷转行搞编程。这两年行业不景气,工资大不如前,但搞编程的人还是越来越多,特别是非计算机科班出生的。面对这样的现实,我们计算机专业在校大学生应该怎样调整,迎战就业呢?
 
       在回答这个问题之前,我们还是来看看现在的公司都是怎样招人的。

       现在找工作,建议在网上找。深圳这边效果好的网站是中国人才热线。天天在上面发简历,等着公司打电话要你去面试就行了。如果有公司要你去面试了,基本都是要过关斩将才有机会和人面谈。一般都是一进公司门,前台小姐会很热情地给你一份试卷做(你不要多问,先老老实实做完题吧:)),根本就不给你机会面谈(题目答得好,你才具备资格和人面谈)。做完了,就放到前台那里,回家等电话吧。机会好的话,可能是管人事方面的人跟你聊聊天,比查户口都要严,什么都问。我是觉得有空要多看看政府发言人、影视明星发言人、公司发言人等等这类讲话,多学学他们是怎么回答记者提问的,这样你才能对付那些人力资源的人。呵呵,这是题外话了。

       看到这里,你终于明白,考试还是重要的第一关。都考些啥?我们从华为一道面试题来看看吧!

       原题大意是这样的:
       有N个大小不等的自然数(1--N),请将它们由小到大排序。
       要求程序算法:时间复杂度为O(n),空间复杂度为O(1)。
       (请你做做看,时间20分钟)

       这一题40分(面试试卷总分100分,60分钟完成。)占40%,可以说对面试成绩至关重要,借用高考的一个名词,这是最后“压轴题”。试卷的分布是这样的,3--5个填空题,4个左右名词解释,8个左右选择题(单选、多选混在一起),2个编程题(任选一题,多做按得分少的计入总分)。就整体难度来说不是很大,考的范围相对来说有点大--C语言、数据结构、网络基础、操作系统、软件工程、数据库等等,但都很基础很基础,都是计算机专业必修课。如果基础知识牢固的话,可能40分钟就能做完。

       我上面所说的从这道“压轴题”可窥一斑了。相信许多人在拿到这道题,第一感觉就是很简单嘛,似乎不敢相信会考这么简单的题目!但是,就是这么简单的题目,还真是考倒了许多人,都是大学本科生,学计算机的,有的还是研究生。还真有点“简单一道排序题,考倒多少读书人!”的味道。这是我一个在华为的同学告诉我的,所以可信度应该是很高的。

       如果是平时自己做作业,我相信许多人可能一下子就做出来了。原因我分析有两个:一是平时看题会仔细一些,有足够的时间;二是心理上觉得华为不可能考得这么简单,老想是否有什么“陷阱”,过度紧张,加之考试时间本身也不长,60分钟,估计大多数人花在这题上面的的时间一般也就20~30分钟吧。因此,建议在校期间应加强心理素质的训练,这么多大大小小的考试都经历过了,再考一次又有何妨!

       从这道题出题意图来看,出题者主要是想考面试者的思维是否敏捷清醒、做事是否认真仔细是否善于思考、基本知识掌握程度如何。为什么这么说呢,第一这道题的确不难,就是一般排序。排序的方法在数据结构中讲得实在是太多了,各种各样的选择排序、插入排序、冒泡排序、希尔排序、堆排序、快速排序等等。但是,用心的人就记得它们当中没有一个算法复杂度是O(n),且不说空间复杂度要满足O(1)。第二就是这道题真正的考点就是看你能否想到数组的下标与这N个数存在的关系。这就是考题中的个小玄机。这N个数随你怎么乱序,排好序后就是数组(让下标从1开始)下标为1的元素,里面放的就一定是1,下标为n的元素,里面放的就一定是N。观察出这点,题目就解决了。

        这道题三言两语就分析完了(详细程序见后面)。透过这道题,我来简单说说计算机专业在校大学生该如何学习专业课程。正如你所见,IT有名的公司,考试题目的难度也不过如此。我想只要是想招应届毕业生的公司,他们都不会出很高深的东西来考你。大家都知道,在校是学习基础理论知识的,不是从事研究的,所以他们没有必要那么做。因此,建议多在基础知识方面下工夫,有条件的多做习题、多上机、勤思考,多看看同一个问题其他人是怎么解决的,和你的有什么不同。有精力的人,试着考程序员、高级程序员,这样你有个目标,学习起来可能更来劲,各专业课学起来联系更紧密。

       总之一句话,注重基础知识,有目标的学习,理论结合习题集。

       [一家之言,欢迎有兴趣的朋友一起讨论:)]
*/


void sort(int e[], int n)
{
 int i;
 int t; /*临时变量:空间复杂度O(1)*/

 for (i=1; i<n+1; i++) /*时间复杂度O(n)*/
 {
  t = e[e[i]]; /*下标为e[i]的元素,排序后其值就是e[i]*/
  e[e[i]] = e[i];
  e[i] = t;
 }
}

void main()
{ 
 #define MAX 10
 int i, a[MAX+1]; 
 
 printf("Input the number from 1 to %d:/n",MAX);
 for (i=1; i<MAX+1; i++)
 {
  scanf("%d",&a[i]);
 }
  
 sort(a,MAX);

 printf("/n====sort over====/n");
 for (i=1; i<MAX+1; i++)
 {
  printf("%d ",a[i]);
 }

 printf("/n");
 system("pause");
}

数据结构填空题 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 11、 12、 13、 14、 15、 16、 17、 18、 19、 20、 21、 22、 23、 24、 25、 26、 27、 28、 29、 30、 31、 32、 33、 34、 35、 36、 37、 38、 39、 40、 41、 42、 43、 44、 45、 46、 47、 48、 49、 50、 51、 52、 53、 54、 55、 56、 57、 58、 59、 60、 61、 62、 63、 64、 65、 66、 6 阅读详情

相关推荐

华为OJ平台试题 —— 排序:字符统计

字符统计 代码: #include #include /* * 定义一个结构体:字符和字符数目 */ struct CountChar { int c; int count; }; /* 根据结构体里面的数字的大小,对结构体进行排序 */ /* 结构体是可以整体进行搬移排序的 */ void s

Cawen的技术博客 2173

面试题汇总--排序方法

排序方法: 冒泡排序,选择排序,快速排序,插入排序,基数排序,桶排序   1、冒泡排序: * 依次比较相邻的两个数,将小数放在前面,大数放在后面 * 冒泡排序,具有稳定性 * 时间复杂度为O(n^2) public class Main { public static void main(String[] args) { //生成10个随机数 R...

weixin_42078450的博客 365

华为计算机公司的面试题目

比较全面的华为公司面试题目,内有华为招收应届大学毕业生技术支持面试题等等

面试必问的六大排序算法,精心总结

起初是时间复杂度为O(n2)级的三种排序算法: 一、冒泡排序 一边比较一边向后两两交换,将最大值/最小值,冒泡到最后一位。 public void bubbleSort(int []arr){ for(int i = 0; i < arr.length - 1; i++){ for(int j = 0; j < arr.length - 1 - i; j++){ if(arr[j] > arr[j + 1]){ /

weixin_50924373的博客 2506

华为数据结构笔试题

华为数据结构笔试题解答,题目要求,若干老鼠围成一圈,一只猫绕着这些老鼠转圈,每隔若干只老鼠就吃掉一只,然后继续转,依次循环……求老鼠被吃掉的顺序。

微软、google、华为 等数据结构+算法面试100题首次完整亮相[100题V0.1最终完美珍藏版]

微软等IT公司的经典面试题,涵盖数据结构、算法等方面; 一书在手,进微软、google、华为等IT公司无忧!

2021大厂Java面试真题(六)

2021大厂Java面试真题(六) * * 2021 【华为】面试真题* * : * * 1、Java 常用集合及特点?* * List:ArrayList、LinkedList、Vector、Stack Set:LinkedSet、HashSet、TreeSet Queue->Deque->LinkedList。 Map:HashMap、LinkedHashMap、TreeMap Dictionary->HashTable->Properties。 Vector: 底层数据结构是数

ZJC'博客 696

华为计算机网络面试题 含答案 600多道

华为计算机网络面试题 含答案 600多道

04年华为的一道排序题..

华为应该是几年前的一道排序题目了,不知道转者从那里转来的,给出的解法有点错误,没有考虑到数组越界的问题,并且排序中也不应该出现负数的情况。转帖地址见于http://blog.youkuaiyun.com/upwaker/articles/57731.aspx 华为一道排序题 简单一道排序题,考倒多少读书人! ——从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战

Schday的专栏 1422

【UE 反射】反射的原理是什么?如何使用机制?

静态类型检查确保了类型的早期一致性和高效的代码执行,但减少了灵活性。动态类型检查提供了更大的灵活性,但增加了运行时的开销和潜在的错误。反射作为一种动态特性,无论是在静态类型语言还是动态类型语言中,都提供了强大的运行时类型操作能力,但也伴随着性能和安全性方面的权衡。通过理解这些联系,开发者可以在不同的编程语言和应用场景中选择适合的类型检查方式和反射机制,以实现所需的动态行为和灵活性,同时保证性能和安全性。

hhw_hhw的博客 6032

基于淘宝商城用户购物行为数据分析系统

本文使用HIve+superset技术对阿里云天池提供的淘宝用户购物数据进行处理分析,得到有价值的信息并对平台提出有建设性意义的意见。

m0_51388399的博客 2819

2012届华为校园招聘上机考试题目第2题——排序问题

2012届华为校园招聘上机考试题目第2题——排序问题 给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到 output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。  例如:input[] = {3, 6,

JingWei的专栏 1511

京东商品数据爬取实战:用Selenium+代理IP绕过最新反爬机制(附完整代码)

本文深入解析京东商品数据采集技术,详细介绍了如何利用Selenium与智能反反爬策略绕过京东最新的反爬机制。通过实战案例和完整代码,帮助开发者掌握高效采集京东商品数据的方法,包括动态参数加密、行为验证识别及分布式采集架构设计等关键技术。

cc789的博客 1060

华为OD机试真题-比赛

题目描述一个有N个选手参加比赛,选手编号为1∽N3≤N≤100,有M(3≤M≤10)个评委对选手进行打分。打分规则为每个评委对选手打分,最高分10分,最低分1分。请计算得分最多的3位选手的编号。如果得分相同,则得分高分值最多的选手排名靠前(10分数量相同,则比较9分的数量,以此类推,用例中不会出现多个选手得分完全相同的情况)。第一行为半角逗号分割的两个正整数,第一个数字表示M3≤M≤10个评委,第二个数字表示N3≤N≤100个选手。第2到M1。

坚定的小辣鸡在努力 1105

ArcGIS Pro MCP 开源:自然语言驱动的 AI 制图与分析

人工智能与大模型的快速发展,正推动专业软件从“手动操作”走向“自然语言控制”。模型上下文协议(MCP)作为连接 AI 与外部工具的标准接口,类似为 AI 安装的“USB 接口”,让大模型可以通过统一协议调用 GIS 软件能力。基于 ArcPy 构建的 ArcGIS Pro MCP 项目,将复杂的地图制图与空间分析封装为 112 个可被 AI 调用的工具,使文本指令直接驱动软件完成数据加载、符号化、出图乃至叠加统计等任务。对 GIS 工程师、数据分析师与测绘规划从业者而言,该开源项目显著降低专业软件使用门槛,

weixin_29054195的博客 274

简单一道排序题,考倒多少读书人!

/*=================================================================== 作者:rerli时间:2003-12-17目的:从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战就业! =============================================================...

weixin_30338481的博客 112

【定位模块项目实战】正态分布变换(NDT)定位及建图(依赖高精度点云地图和三维激光雷达的定位方案)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、正态分布变换(NDT)定位解决的主要问题二、正态分布变换(NDT)定位的核心思想三、NDT算法流程1.多元正态分布概念2.网格化并计算正态分布参数3.变换参数和最大似然四、使用C++实现NDT配准参考资料 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对依赖高精度地图和激光雷达的定位技术–正态分布变换(NDT)定位做个简单的介绍,具体

qq_35635374的博客 4411

华为机考题

还挺简单的,可能是岗位简单所致。 时间都不卡,两个水题,一道拓扑排序。

熊猫跳高的部落格 159

使用Google Earth Engine下载JRC全球水体数据

通过Google Earth Engine平台和提供的源代码,研究人员和水资源管理者可以方便地获取和利用这一重要的水资源监测数据集,从而开展相关的研究和决策支持工作。要使用Google Earth Engine下载JRC全球水体数据,首先需要在Google Earth Engine平台上进行注册和登录。JRC全球水体数据是由欧洲联合研究中心开发的高分辨率全球水体分类数据集,覆盖了整个地球的陆地和水域。下载完成后,你可以使用各种遥感数据处理软件来打开和分析这些数据,以满足不同的研究和应用需求。

LrlDebug的博客 1158

基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)

这些模型将长方体的尺寸定义为状态转换期间的常量,并且它们的估计值在滤波器的校正阶段随时间演变。下面的动画显示了在滤波器的预测阶段将具有不同概率的恒定速度和恒定转弯率模型混合在一起的效果。此示例显示了如何使用带有 IMM 过滤器的 JPDA 跟踪器来跟踪使用激光雷达传感器的对象。图像和激光雷达数据读取器从 MAT 文件中读取记录的数据,并分别输出参考图像和点云中点的位置。跟踪器块选中“启用所有轨道输出”和“启用可检测的跟踪 ID 输入”复选框,以从跟踪器输出所有轨道,并将其检测概率作为其状态的函数进行计算。

珞瑜的博客 2566

笔试面试算法题解之华为-成绩排序

笔试面试算法题解之华为-成绩排序 题目描述 用一维数组存储学号和成绩,然后,按成绩排序输出。 输入描述 输入第一行包括一个整数N(1<=N<=100),代表学生的个数。接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。 输出描述 按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。如果学生的成绩相同,则按照学号的大小进行从小到大排序 思路剖析: 先进...

dijixiao5919的博客 408

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

华为机测题

华为机测题 华为机测题: 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性 他先用计算机生成了N个1~1000之间的随机整数(N<=1000) ,N是用户输入的,对于 其中重复的数字,只保留一个,把其余相同的数字去掉, 不同的数对应着不同的学生的学号, 然后再把这些 数从小到大排序,按照排好的顺序去找同学做调查, 请你协助明明完成“去重”与排序工作 sorted() impo...

Leslie_qlh的博客 912

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

华为OD机考E卷100分题 - 磁盘容量排序

(长度大于2,小于30),表示磁盘的容量,由一个或多个格式为mv的子串组成,其中 m 表示容量大小,v 表示容量单位,例如:20M,1T,30G,10G6T,3M12G9M。注意单位可以重复出现,上述 3M12G9M 表示的容量即为:3M+12G+9M,和 12M12G 相等。(太字节)表示,它们之间的换算关系为:1T = 1024G,1G = 1024M。1G和1024M容量相等,稳定排序要求保留它们原来的相对位置,故1G在1024M之前。输出 n 行,表示 n 块磁盘容量排序后的结果。

left_freckle的专栏 1038

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

29.集合练习---随机数去重排序(华为测试题)

练习: 华为机测题: 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性 他先用计算机生成了N个1~1000之间的随机整数(N<=1000),N是用户输入的, 对于其中重复的数字,只保留一个,把其余相同的数字去掉,不同的数对应 着不同的学生的学号,然后再把这些数从小到大排序,按照排好的顺序去找同学做调查,请你协助明明完成 “去重”与排序工作 代码如下: import random ...

我要变蘑菇了_o的博客 836
上一篇: const用法小结(原创)
下一篇: 华为2004年招收应届大学毕业生技术支持面试题。
upwaker
博客等级 码龄22年 33粉丝 76原创
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值