思路:使用选择排序算法,每次选择出未排序部分的最小元素,将其加入已排序部分,直到已排序部分长度为10。
代码示例:
def find_min_10(arr): """不排序,找出数组中最小的10个元素""" n = len(arr) if n < 10: return sorted(arr) res = arr[:10] for i in range(10, n): max_idx = 0 for j in range(1, 10): if res[j] > res[max_idx]: max_idx = j if arr[i] < res[max_idx]: res[max_idx] = arr[i] return res
arr = [3, 45, 6, 23, 7, 43, 78, 12, 33, 56, 29, 8, 90] print(find_min_10(arr)) # [3, 6, 7, 8, 12, 23, 29, 33, 43, 45]