【LintCode】第k大元素

来源:互联网 发布:鼎金网络投教中心 编辑:程序博客网 时间:2024/04/17 02:22

描述

在数组中找到第k大的元素

python code

class Solution:# @param k & A a integer and an array# @return ans a integerdef kthLargestElement(self, k, A):    self.quick_sort(A, 0, len(A) - 1)    return A[-k]def position(self, A, start, end):    i = start    j = end    povit = A[start]    while( i < j):        while(i < j and A[j] >= povit):            j -= 1        if( i < j ):            A[i] = A[j]        while(i < j and A[i] <= povit):            i += 1        if (i < j):            A[j] = A[i]    A[i] = povit;    return idef quick_sort(self, A, start, end):    if  start < end:        mid = self.position(A, start, end)        self.quick_sort(A, start, mid - 1)        self.quick_sort(A, mid + 1, end)

说明

先使用快速排序给数组排序

0 0
原创粉丝点击