阅读历史 |

第97章 算法面(1 / 2)

加入书签

请关闭浏览器的阅读/畅读/小说模式并且关闭广告屏蔽过滤功能,避免出现内容无法显示或者段落错乱。

屏幕右上角的倒计时还剩三分钟,林晨做了个深呼吸。面前是T厂在线面试平台的代码编辑器界面,左侧是题目描述,要求手写快速排序算法,并分析时间复杂度。

上一轮王工的肯定还在耳边,但林晨清楚,二面才是真刀真枪。他活动了一下手指,目光扫过题目要求——不仅要写出来,还要解释优化点。

倒计时归零。

“林工,准备好了吗”?耳机里传来声音,比王工更沉稳些,带着一种技术人特有的冷静。

“准备好了”。林晨对着摄像头点点头。

“好,第一题,快速排序。给你十五分钟,写核心代码,然后讲思路”。面试官顿了顿,“提醒一下,我们关注边界条件、原地排序的实现,以及你在实际工程中如何应用或优化这个算法”。

林晨没有立刻敲代码。他盯着空白编辑器,脑海里先过了一遍流程:选基准、分区、递归。但面试官最后一句话是重点——实际工程应用。

他敲下第一行注释:“Python实现,原地排序,避免递归过深时栈溢出风险”。

手指在键盘上跳动,代码流畅地出现。他刻意避开了教科书上最简单的递归版本,而是采用了栈模拟递归的迭代写法,并在分区函数里加入了针对近乎有序数组的优化——随机选择基准元素。

defquick_sort_iterative(arr):

ifnotarrorlen(arr)<=1:

returnarr

stack=[(0,len(arr)-1)]

whilestack:

low,high=stack.pop

iflow>=high:

tue

#随机选择基准,避免近乎有序数组退化到O(n^2)

pivot_idx=rando.randt(low,high)

arr[loivot_idx]=arr[pivot_idx],arr[low]

pivot=arr[low]

#分区操作

i,j=low+1,high

whilei<=j:

whilei<=jandarr[i]<=pivot:

i+=1

whilei<=jandarr[j]>pivot:

j-=1

ifi<j:

arr[i],arr[j]=arr[j],arr[i]

arr[low],arr[j]=arr[j],arr[low]

#先压入较大的区间,控制栈深度

if(j-low)>(high-j):

stack.append((low,j-1))

stack.append((j+1,high))

else:

stack.append((j+1,high))

stack.append((low,j-1))

returnarr

写完代码,时间才过去八分钟。

“我写完了”。林晨说。

“比预期快”。面试官的声音听不出情绪,“先解释一下为什么用迭代而不是递归”?

“两个考虑”。林晨清了清嗓子,“第一,工程实践中,递归深度受系统栈限制,处理大规模数据有风险。第二,迭代版本更容易加入自定义的调度策略——比如我刚才优先处理较小分区,这能进一步控制栈的使用量”。

“随机选择基准呢”?

“这是应对实际数据分布的策略。教科书上的快速排序在最坏情况下——比如数组已经有序或逆序——会退化到O(n2)。真实业务数据常常有部分有序的特征,随机化能保证数学期望上的O(nlogn),更稳定”。

面试官沉默了几秒,林晨能听到那头轻微的键盘敲击声,大概是在记录。

“时间复杂度分析”。

↑返回顶部↑

书页/目录

都市重生相关阅读: 三国:少帝别慌,我带了颗龙蛋 穿越奥布:新人类总帅 女扮男装!男校里所有男主都爱她 原神:开局负债,无奈成为执行官 在西幻世界的我喜夺万人嫌剧本 残疾小少爷他柔弱不能自理 盛世如你所愿,别再做我的梦 昨日尾调 年代1983:我在东北做木工 漫威:卡玛泰姬唯一真神,李宇 游戏入侵:我开挂偷空仇家底蕴 [希腊神话]蛇蛇被发誓钟情后 沙漠神豪:九千万亿爆改戈壁滩 抗战:李云龙当警卫,全团杀疯了 四合院:末日房车苟成神 九幽宅邸录 穿成反派的我靠沙雕苟活 1978:我靠每日情报赶山致富 反派:背景通天,哪里都有点关系 异世帝国崛起,开局君临天下 红楼:绛珠有弟嘉靖,随母入贾府 大雍无冕 身为武神,抽象一点怎么了 我对象的alpha人设有点怪 重生2017我把总裁前任踩成渣 顶级偏爱:拳王的心尖清冷神医 与你共感 股海明灯:财富战法 村长快顶不住了 重生美利坚:从农场主到商业帝王 乞帝传 从真灵命匣变成先天灵宝开始 都市送快递的我逆袭学霸 三十加二手男巅峰从离婚开始 极道噬魔,浊世演武 四合院:大灾之年,过分了啊! 美艳老妇绝育,改嫁四次,生多宝 穿成假千金后,我靠玄学爆红了 我是妖魔的心上人 回到2002,从写挂开始 从浣熊市开始轮回 不良反应尚不明确 失格落日 小黑的魔帝分身 末世异能武尊 斗破:我能固化万物天赋 我也没办法啊,前男友不让我死 陌生新婚 横刀岭南,斩断西方伪史 华娱:都重生了,谁还当演员啊 青舟异闻录 修仙是门实验科学 终末:神谕游戏 凤逆天:君主的暗影妻 废柴女驭兽师:神兽大军踏碎凌霄 [崩铁]让游戏公司再次伟大 大秦:天道金榜曝光了我 恶犬攻绑定上司的乖狗系统 斗罗绝世:终焉神锋 被我锐评的她们都成真了