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