import random ,operator
def bubble_sort(arr):
if not arr or len(arr) ==1:
return
n = len(arr)
for j in range(1,n):
for i in range(0,n-j):
if arr[i]>arr[i+1]:
swap(arr,i,i+1)
#arr[i],arr[i+1] = arr[i+1],arr[i]
return arr
def swap(arr,a,b):
#交换函数
arr[a],arr[b] = arr[b],arr[a]
# 对数器
def generateRandomArr(size,value):
#产生一个随机数列长度为size,数字范围为-value~value
arr = []
for i in range(size):
arr.append(int((value+1)*random.random())-int(value*random.random()))
return arr
def rigth_mothod(arr):
#一个绝对正确的方法
arr.sort()
return arr
def isRight(times,size,value,func):
succeed = True
for i in range(times):
arr1 = generateRandomArr(size,value)
arr2 = arr1.copy()
arr3 = arr1.copy()
func(arr1)
rigth_mothod(arr2)
if not operator.eq(arr1,arr2):
succeed = False
print(arr3)
break
print('NICE'if succeed==True else 'WRONG')
if __name__ == '__main__':
isRight(50000,50,20,bubble_sort)
数对器模板用于大样本的测试