Python程序:从列表中选择第n小的元素,期望线性时间复杂度
当需要在线性时间复杂度内从列表中选择第n小的元素时,需要两种方法。一种方法是查找最小元素,另一种方法是将列表分成两部分。此划分取决于用户给定的’i’值。基于该值,对列表进行划分,并确定最小元素。
以下是示例 −
示例
输出
说明
-
定义了一个名为’select_smallest’的方法,该方法将列表,开始,结束和’i’值作为参数。
-
定义了另一个名为“start_partition”的方法,该方法根据“i”的值将列表分成两部分。
-
此方法在“select_smallest”方法中调用。
-
‘select_smallest’方法再次在同一函数内调用-这就是递归的工作原理。
-
从用户输入数字。
-
根据默认值拆分。
-
迭代它。
-
从用户处获取’i’的值。
-
根据此“i”值,将列表分为两部分。
-
基于其中一个列表调用“select_smallest”方法。
-
在控制台上显示结果。