算法高效
⑴ 数据结构 设计高效算法问题
// 要求是删除顺序表中在范围[x, y]内的元素。
// 按常规思路,每删除一个顺序表元素,则要将其后的元素整体前移一个位置。这种算法用到了双重for循环,时间复杂度为O(n^2)。
// 以下的算法只用到了单重for循环,时间复杂度为O(n)。原理是把所有不在范围[x, y]内的元素依次保存到顺序表的前部,而不处理本来要删除的、在范围[x, y]内的元素。当把所有不需要删除的元素都保存到了顺序表前部,只需要重新设置一下顺序表的长度为“前部”的最大下标+1,就模拟了删除操作。
void fun(SqList *&L, ElemType x)
{
// i为循环计数器。
// j为不需要删除的元素个数,初始化为0。
int i, j = 0;
// 依次遍历顺序表的每个元素
for (i = 0; i < L->length; ++i)
{
// 只处理不需要删除的元素,即不属于区间[x, y]的元素
if (!(L->data[i] >= x && L->data[i] <= y))
{
// 每找到一个不需要删除的元素,就把该元素保存到下标j的位置。
L->data[j] = L->data[i];
// 随后令j自增1。之前j代表的是处理后的顺序表的最大下标,现在j代表的是处理后的顺序表的长度。由于下标从0开始,所以长度永远比最大下标大1。
++j;
}
}
// 设置顺序表的长度为j,这样以后遍历顺序表只能访问前j个元素。即使下标j之后可能还存在属于[x, y]的元素,但是不会访问到它们,自然相当于“删除”了。
L->length = j;
}
⑵ 算法管理:组织管理转型、企业高效决策的制胜利器
以下文章来源于蜜蜂学堂
“小李,你本周的表现非常出色。您的销售额增长了70%,从而帮助你的团队在排行榜中取得第一的好成绩。但是你仍然有很多开放的机会,所以请继续努力哦!”
接收绩效反馈有助于员工成长,它鼓励学习并奖励良好的表现。 但是,如果是算法提供反馈而不是人,该怎么办?这就是组织中算法管理的基础。
什么是算法管理?
算法管理是通过算法对员工进行战略跟踪、评估和管理。组织通过算法接管了过去由管理者执行的任务。
这种管理创新在零工经济中尤为常见。 例如,Uber,Deliveroo和UpWork之类的平台使用算法来管理和密切监视其全球员工。
算法给员工分配任务并评估其绩效。他们还提供反馈和有关如何提高绩效的建议。
但是,使用算法管理员工慢慢地不再局限于零工经济。传统组织越来越发现提高效率和以数据为依据的决策的好处。
大数据和自动化已成为大多数业务部门变革的首要方向,而人力资源部门也将其重点放在了数据驱动的决策上。
人力资源中使用的算法可以提高效率,甚至胜过人类的决策制定。 实际上,根据普华永道的研究报告,跨国公司中已有40%的人力资源部门使用基于AI的工具 (相关报告可以私聊我获取)。
例如,算法的使用在员工选拔中变得非常普遍,该算法被用于简历筛选,使求职者与职位匹配之中。
他们正在通过自然语言处理来分析视频面试中的面部表情或申请人的书面申请中所体现的动机。此外,算法还向员工和经理提供关于绩效方面的反馈。
随着算法在组织决策中的影响力越来越大,这样就容易导致一个问题:利用算法的决策是否具备相应的客观性和准确性?
像其它辅助决策的技术一样,算法决策也是一把双刃剑,它会带来一系列的挑战。
• 求职者会如何看待一家通过机器自动完成部分面试和人员选拔过程的公司?
• 员工对自动绩效反馈有何反应(反馈不再来源于直接上级)?员工在多大程度上会接受这类反馈?
• 管理者在多大程度上会依赖算法做出的决策?
事实是:实施算法会改变组织和人际关系的动态。 因此,必须仔细研究算法管理的优势和挑战,并搞清楚组织实现算法管理的最佳做法。
我们将在下面详细讨论在您的组织中实施算法管理的建议。
01
组织实施算法管理的三大优势
1.启动组织绩效
提高生产率和工作效率是算法管理的最重要优势之一。例如,一个小时内,比较算法与一个招聘人员可以扫描的简历数?
结果是:算法基本能把人类招聘者按在地上摩擦,两者之间的差异巨大,这样可以帮助公司在人才竞争中保持领先地位。
将手动的任务转变为自动化,将为管理人员腾出更多的时间和资源,以专注于有更高战略影响力的任务,从而帮助提高组织绩效。 未能将分析和人工智能集成到其战略事务中的公司将面临落后他人的风险。
欧莱雅集团,是一间总部位于法国巴黎的皮肤护理、化妆品公司,在全球拥有80000名员工,每个职位空缺平均会收到130份职位申请。
欧莱雅每年开放约15000个职位,需要处理近百万份申请,因此其开始尝试利用AI技术帮助招聘人员摆脱令人头痛的简历筛选工作。
Mya是一款聊天机器人,它能够处理候选人提出的问题,从而在招聘早期帮助欧莱雅节约大量宝贵的时间。 此外,它还能够检查各项重要细节,例如求职者是否尚未找到工作,以及签证的当前状态等。
接下来,求职者需要面对Seedlink,这款AI软件负责评估他们在开放式面试问题中给出的答案。 这款工具能够找到在简历评审过程中被忽略的求职者。
该公司招聘人员表示,在一次从12000名候选人中选出80名实习生的过程中,该软件帮助他们节约了200个小时的工作时间。AI技术帮助欧莱雅能够更快地招聘10倍的员工,并增加25%的求职者面试机会。
2.改善管理决策和远程管理
近年来,基于证据和数据驱动的决策已变得越来越普遍。算法可以帮助处理管理者每天面对的日益复杂的问题。算法系统的数据处理能力远远超出了人类的能力范围。
他们可以考虑所有相关数据并排除不相关因素。这样就可以进行客观、公正、数据驱动的决策。而且,它可以减少决策过程中的偏见。
例如,认知偏见可能会导致零售商相信需要对其员工进行不稳定的安排。零售中不稳定的安排是指零售商通过工作计划的变化来减少人工成本。
许多零售商认为这种类型的计划是有效的,因为他们看到了直接的短期收益(例如削减工资),却忽略了长期的负面影响(例如对客户服务的影响)。
在这里,可以根据客户流量和其他数据预测人员需求的算法开始发挥作用。 研究表明,“将算法与管理者的直觉相结合可以导致更好的人员配置决策”。
算法对于远程办公也可能是有益的。劳动力将变得越来越分散,在某种程度上,远程和混合办公将成为常态。
这可能给员工带来巨大的好处。但是,管理人员可能很难跟上员工的进度和绩效。 绩效监控算法可能是成功进行远程管理的重要工具。
3.接收个性化的见解和反馈
算法管理不仅为管理人员带来好处,而且为员工带来好处。算法可以提供个性化的绩效反馈。
Deliveroo向其快递员发送个性化的月度绩效报告。 他们获得有关其平均“接受订单时间”,“到餐厅的路程时长”,“到客户处的路程时间”以及算法跟踪的其他指标的信息。
算法可以洞察员工的工作进度、待办事项和开展的项目。它们还用于改善员工的福祉。 这种算法分析员工的需求和目标,并推荐培训和发展计划。
算法还可以跟踪和评估对员工的福祉和动力最重要的因素,在此基础上,他们可以就如何提高员工福利向管理人员提供建议。
02
组织运用算法管理的三个最重要的挑战
1. 关于算法管理的伦理问题
除了算法管理的好处之外,还有几个重要的伦理问题。
算法的主要目标是改进决策,使决策更加客观公正。然而,情况可能恰恰相反,由于算法可以消除或减少决策过程中的人工干预,因此,人们可能认为算法是不公平的。
主要的关注点是算法所依据的数据。在样本数据上训练算法来预测事件并做出决策,因此,数据的质量是一个重要的因素。
例如,一个组织可以训练一种关于历史人才数据的算法,在这些数据中,很少有女性担任管理职位,然后,该算法可能会做出预测:女性在公司管理岗位上取得成功的可能性较低。因此,女性可能被排除在组织的人才管理计划之外。
算法通常是在“黑箱”中操作,它们并不透明,而且算法的工作精度通常也不清楚。这可能会对算法的信任度提出挑战,并为算法的决策提出问责性问题。
美国一些州已经在研究算法和人工智能在招聘中的使用,以及如何确保它们的公平性和透明度。
纽约州正在立法,要求招聘技术供应商进行反偏见审计,并确保遵守就业歧视法。
伊利诺伊州颁布了 《人工智能视频面试法》 (AI Video Interview Act),对使用人工智能分析应聘者视频面试的公司施加了限制。
利用算法管理不是一个是或否的问题。通常,只有部分决策是自动化的。 因此,公平和责任问题取决于公司在多大程度上依赖算法决策。
真正的问题是:算法的作用是增强还是完全自动化?你是用算法来给你提供建议,还是用它来代替人类决策,这都是有区别的。
2. 算法管理挑战管理者和人力资源的角色
算法管理减少或取代了不同流程中的人工参与和交互。这对管理者和人力资源构成了挑战。当个人和同理心的一面消失后,员工管理会发生怎样的变化?
管理者和人力资源从业者都需要适应算法管理带来的新动态,他们需要新的技能和能力,为负责任地使用算法做准备。
管理者和人力资源管理者也需要采用(潜在的)员工的观点。例如,当候选人不相信算法能看出自己有多独特时,招聘中使用的算法可能会出现问题。
那么,管理者和人力资源部门如何面对算法管理运用后,带来的自动化程度的提高和人际交往的减少呢?
他们如何成功地创造数据驱动文化的变革呢?所有这些都是人力资源和管理人员必须找到答案的问题。
3.算法管理对员工福利的风险
算法管理也可能对员工的福祉构成风险。一些人将实时行为跟踪、反馈和评估与泰勒主义的监视进行了比较,算法管理可以被视为对员工的一种侵入式控制形式。
这似乎也与赋予员工更多自主权、灵活工作和时间表的趋势相冲突。公司必须密切关注员工对引入算法管理的反应。
一些员工可能认为这是对他们心理安全和自主的威胁,这样导致的结果是,由于引入算法管理,员工的幸福感可能会下降。
例如,一家国际连锁酒店使用软件工具来管理客房服务员。他们需要不断更新下一个要打扫的房间,该公司还能跟踪他们打扫一个房间需要多长时间。
然而,工作人员指出,该算法没有考虑到他们工作的细微差别,使工作变得更加困难。 他们变得无法安排自己的一天,工作也变得更吃力,因为算法“指挥着”他们“在酒店各个楼层里拼命的跑来跑去”。
03
实施算法管理的建议
好消息是:在减少算法管理挑战的同时,也有可能获得算法管理的好处。 以下策略可以帮助管理者负责任地在组织中实施算法管理。
1. 战略
首先,确定算法管理的使用程度是至关重要的。Gig平台完全依赖算法管理,但对于更传统的公司来说,这可能不是正确的解决方案。
因此,这不是非此即彼的问题,而是在哪里、在什么程度上的问题。
公司可以找出成本高且相对标准化的流程,并从那里开始。在那里,你可以期待算法管理能获得最大的收益。
在任何情况下,将算法集成到业务和决策过程中都需要一个明确的战略:确定它们是增强还是自动化人类决策。
2. 变革管理
在实施算法管理时,考虑员工的福祉也很重要。在组织中引入算法是一个实质性的转变,变革管理的视角可能会很有帮助,主动的变革管理是引入算法的决定性因素。
你需要确保已经做好变革的准备。通过帮助你的员工和经理理解算法所增加的价值,可以让他们准备好迎接变革。
人们也可能对算法管理的引入感到威胁。这可能是由于缺少关于算法管理的广泛且深入的交流。
同样,员工可能会担心机器正在取代他们,为了克服这一点,在变革过程的早期就把员工和管理者纳入进来是很重要的。建立开放的沟通渠道有助于解决人们所关心的问题。
这包括主动沟通数据的用途以及谁对算法决策负责。它可以防止员工或管理者感到自己被蒙在鼓里。
沟通和变革管理应该与培训齐头并进。培训可以让人们轻松地处理与算法的关系,并移交决策。
如果人们不了解算法是如何工作的,他们可能不想使用它。培训员工和管理人员使用算法所需的技能和能力是至关重要的。
3.不断评估
最后,公司需要采用一种持续评估的文化。跟踪算法的执行情况的必要性。只有当决策是准确的、高质量的,人们才会接受算法带来的附加值。
并不是每一种算法都能提高效率,所以监控其质量是很重要的。 这一变化对员工的影响也需要跟踪,组织可以为员工提供表达关切和提供反馈的机会,特别是那些由算法管理的员工。这为组织调整和改进算法管理提供了有价值的信息。
算法管理的好处以及它如何帮助企业在竞争中保持领先地位是显而易见的。
算法不仅能提高效率,还能增强决策能力。不过,这不应该以牺牲员工福祉为代价。
自动化执行的任务(比如提供反馈)代表了一个巨大的变化,但我们对把这种变化转变成积极和可持续的事情具有主动权,管理者和人力资源需要在创造变革准备方面发挥重要作用。
没有一刀切的方法,每个组织都需要仔细评估算法的引入给他们带来的好处和挑战。
本文提出的策略可以帮助指导组织完成这一转变。算法管理的前景是巨大的。然而,有必要始终关注组织所拥有的最有价值的资产: 我们的员工。
了解更多: 方云数字化创新绩效,数据智能驱动创新型增长
⑶ 数据结构:设计一个高效算法,将顺序表中的所有元素逆置,要求算法空间复杂度为O(1)。
设计一个高效算法,将顺序表中的所有元素逆置,要求算法空间复杂度为O(1)扫描顺序表L的前半部分元素L.data[i] (0<=i<L.length/2),将其与后半部分的对应元素L.data[L.length-1-i]进行交换即可。
顺序表的存储只要确定了起始位置,表中任一元素的地址都通过下列公式得到:LOC(ai)=LOC(a1)+(i-1)*L 1≤i≤n 其中,L是元素占用存储单元的长度。
(3)算法高效扩展阅读:
数据的物理结构是数据结构在计算机中的表示,它包括数据元素的机内表示和关系的机内表示。由于具体实现的方法有顺序、链接、索引、散列等多种。
数据元素的机内用二进制位(bit)的位串表示数据元素。当数据元素有若干个数据项组成时,位串中与各个数据项对应的子位串称为数据域(data field)。