• 分享
  • 25.01.15 算法 - 黄老师: 排序

  • @ 2025-1-15 15:57:08

算法

算法意义

我们可以把一个程序看作是一个黑箱,从功能角度来说,只要这个黑箱能够根据我的输入得到我的输出,就是一个基本”正确“的程序;

除了功能性以外,对于程序员或公司有时更看重算法的时间效率和空间效率:

阿里巴巴支付宝用户假设有13亿, 它会将这些用户数据一条条记录在数据库中。

你是一名应聘阿里巴巴的后端程序员,面试官考察了你一道题目:

请你将用户做一份资产从大到小的排序,用于反馈资产存款前10000名的用户一瓶茅台。

你只了解 选择排序冒泡排序, 而边上的小王选择了 快速排序;

你的算法可能运行了1小时, 而小王的算法可能只运行了2分钟,

在时间背后的更是经济, 一台服务器运行1小时的程序和运行2分钟的程序, 时间占用、散热等等会影响公司的支出,

最后可想而知, 公司会录用小王。

Hello 算法: https://www.hello-algo.com/chapter_sorting/

一段使用lambda匿名函数实现自定义排序规则的程序:

d = {'rxy': [2430, 170], 'qrx': [2430,168], 'njw': [2431, 175], 'lgh': [2430,175], 'yj': [2430,180]}
print(sorted(d.items(), key = lambda item:(item[1][1], item[1][0])))
'''
lambda
('qrx', [2430, 168]) -> (168, 2430)
('rxy', [2430, 170]) -> (170, 2430)
('njw').             -> (175, 2431)
('lgh').             -> (175, 2430)
'''

0 条评论

目前还没有评论...