class Solution(object):
def quickSort(self, arr, startIndex, endIndex):
i = startIndex
j = i
while j <= endIndex - 1:
if arr[j] < arr[endIndex]:
temp = arr[j]
arr[j] = arr[i]
arr[i] = temp
i += 1
j += 1
temp = arr[endIndex]
arr[endIndex] = arr[i]
arr[i] = temp
return i
def smallestK(self, arr, k, startIndex, endIndex):
if startIndex >= endIndex:
return
index = self.quickSort(arr, startIndex, endIndex)
if index == k + 1:
return
if index < k + 1:
self.smallestK(arr, k, index + 1, endIndex)
else:
self.smallestK(arr, k, startIndex, index - 1)
test = Solution()
example_nums = int(input())
res = []
for i in range(example_nums):
length = int(input())
arr = input().split(' ')
arr = [int(i) for i in arr]
src = []
for i in arr:
if i not in src:
src.append(i)
startIndex = 0
endIndex = len(src) - 1
k = int(input())
test.smallestK(src, k, startIndex, endIndex)
for i in range(k):
res.append(src[i])
res.sort()
for i in res:
print(i, end=' ')
res.clear()
print()
# 2
# 19
# 56 34 22 7 16 95 46 37 81 12 73 26 19 31 68 42 3 72 51
# 8
# 26
# 8 33 28 17 51 57 49 35 11 25 37 14 3 2 13 52 12 6 2 32 54 5 16 22 23 7
# 13
求数组前1~k个最小元素
于 2022-05-01 22:11:43 首次发布