编程珠玑 第一章 位图排序算法python实现
# 有一组数字,从1到n(此例子假设n=10),乱序且不存在重复的数字。例如:[8,9,2,3,6,1,4,5,7,10]。从中任意删除了3个数,顺序也再次被打乱,将这些剩余数字放在一个n-3的数组里,请找出丢失的数字,要求算法比较快
def bitmap():
n = 10000000
oldArr = [1, 2]
for i in range(n):
old = random.randint(1, n)
oldArr.append(old)
newarr = []
lostArr = []
for _ in range(n + 1):
newarr.append(0)
for i in range(n - 3):
newarr[int(oldArr[i])] = 1
for j in range(len(newarr)):
if newarr[j] == 1:
lostArr.append(j)