华为一道排序题

简单一道排序题,考倒多少读书人!——从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战就业! /*===================================================================作者: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

Python-OpenCV及cv2,numpy库最新安装教程[最全步骤]

安装教程目录前言OpenCV-Python安装教程报错解决cv2安装numpy安装opencv安装(附加)总结 前言 首先,我知道一些看到我的Blog的人已经在网上找了很多歪路子,现在已经火冒三丈了(我也是这样过来的hhhh),那么现在,深呼吸,跟着我的教程,不要着急,每一步都要读一遍。完整安装过程需要1个小时左右(仅供参考,本人第一次安装python花了一天(确信)) OpenCV-Python...

qq_45425286的博客 7430

TCP协议中ARQ自动重传的三种实现方式对比(含SACK详解)

本文深入解析TCP协议中ARQ自动重传的三种实现方式,包括停止-等待、回退N步和选择重传协议,特别详细介绍了SACK机制的工作原理和优势。通过对比分析各协议的效率、复杂度和适用场景,为网络通信中的可靠性传输提供了实用的选型指南。

weixin_30776273的博客 462

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

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

JingWei的专栏 1511

嵌入式人工智能(18-基于树莓派4B的继电器JQC-3FF-S-Z)

本次实验的输出端控制不会接强电,就用LED灯来模拟即可,由于我那个流水灯模块是低电平点亮,所以接线稍有不同,同学们注意。只有继电器吸合,输出端的NO与COM就导通,给LED低电平然后就亮,否则继电器断开,NO与COM不导通,LED不亮。原理都一样,控制电流的接通与断开,这个模块看起来还简单点,毕竟还有2个指示灯,下端IN如接上电源红灯亮,继电器动作有电流通过绿灯亮。在实际应用中,可以通过编程控制继电器的通断状态,例如在Python编程中设置继电器模块的通断时间,从而实现自动化控制。

u010152658的博客 2531

华为OD机试真题-比赛

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

坚定的小辣鸡在努力 1105

GROMACS新手必看:从PDB文件到完整分子动力学模拟的保姆级教程

本文提供GROMACS分子动力学模拟的保姆级教程,从PDB文件处理到完整模拟流程全覆盖。详细讲解结构预处理、系统构建、能量最小化、生产模拟等关键步骤,并分享性能优化和结果分析技巧,帮助新手快速掌握分子动力学模拟的核心操作。

yhn456789的博客 763

LabVIEW小白福音:手把手教你用NI采集卡搭建振动信号采集系统(附源码和避坑指南)

本文为LabVIEW初学者提供详细的NI采集卡振动信号采集系统搭建指南,涵盖硬件连接、驱动安装、信号处理及性能优化等关键步骤。特别针对振动信号采集系统中的常见问题提供解决方案,并附源码和避坑指南,帮助用户快速上手并避免常见错误。

weixin_30485379的博客 103

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

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

weixin_30338481的博客 112

BLDC&PMSM电机控制器硬件设计工程(八)72V 10kW电机控制器原理图工程及库文件

电机控制器基本需求:接口类型;MCU平台;通信接口;供电;信号采集;信号输出;功率;EMC或者认证需求。

小幽余生不加糖 373

华为机考题

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

熊猫跳高的部落格 159

ArcGIS实验教程——实验二十五:大型商场选址经典案例

本实验基于ArcGIS平台进行商场选址分析,综合考虑道路、居民点、停车场和已有商场四个影响因素。通过缓冲区分析建立各要素的影响范围(道路50米、居民点100米、停车场100米、已有商场500米),采用叠加分析中的相交和擦除运算确定最优选址区域。实验建立了区位评价体系,通过属性赋值(1/-1)和联合运算生成综合评价结果,并实现分级可视化显示。注意事项包括距离参数设置对结果的影响以及正确选择空间分析工具。该流程为商业选址提供了科学的GIS解决方案。

智慧空间实验室 1万+

YOLOv11 知识蒸馏完整实战:Teacher–Student 训练策略与性能飞跃

在self.alpha = alpha # 蒸馏损失权重self.temperature = temperature # 温度系数,控制分布平滑度# 输出分布蒸馏(KL散度损失)# 中间特征蒸馏(MSE损失,对齐中间层特征)# 总蒸馏损失知识蒸馏是YOLOv11在“小模型高性能部署”场景的“破局之法”——它让小模型能“站在大模型的肩膀上”,兼具速度与精度。从损失函数定义到多阶段训练,再到实战落地,本教程已为你铺就了一条清晰的路径。

m0_64661770的博客 141

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

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

dijixiao5919的博客 408

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

华为机测题

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

Leslie_qlh的博客 912

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

华为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

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

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、付费专栏及课程。

余额充值