版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qxqxqzzz/article/details/84455399
耗时时间太长,需要改进
思路:将两个数组合并,运用快速排序进行排序,成为一个有序数组,然后根据数组元素个数是奇数还是偶数,确定其中位数
中位数的概念:
1,如果数组元素个数为奇数, 则中位数为中间那个元素
2,如果数组元素个数为偶数,则中位数为中间两个元素的算数平均数
注意:返回值类型不一定非要为浮点型,比如数组元素个数为奇数时,返回的是中间那个元素,可以不是浮点数,是整数。
class Solution:
def findMedianSortedArrays(self, nums1, nums2):
def quicksort(arr):
if len(arr) < 2:
return arr
else:
pivot = arr[0]
less = [i for i in arr[1:] if i <= pivot]
greater = [ i for i in arr[1:] if i > pivot]
return quicksort(less) + [pivot] + quicksort(greater)
mid = 0
arr = nums1 + nums2
arr = quicksort(arr)
print(arr)
if len(arr) < 2:
mid = arr[0]
print(mid)
return mid
if len(arr) % 2 == 1:
mid = arr[(len(arr) // 2)]
else:
mid = (arr[(len(arr)//2-1)]+arr[len(arr)//2]) / 2
print(mid)
return mid