import random
import pretty_errors
#isSorted用来检测数据是否已经有序,在内层循环时如果没有进行交换变量则表示数据已经排序完成,就不用再继续循环了
#sortBoard用来检测每次内部循环的边界,边界后面的数已经有序,不用再比较
def bubbleSort(data):
length = len(data)
sortBoard = length-1
for i in range(length):
isSorted = True
for j in range(sortBoard):
if(data[j] > data[j+1]):
#交换变量
data[j], data[j+1] = data[j+1], data[j]
isSorted = False
lastchange = j
sortBoard = lastchange
if isSorted:
break
#打印输出
def printf(data_p, state):
for i in state:
print(i, end = '')
print(":")
for i in data_p:
print(i, end = ' ')
print('\n')
def main():
data = []
for i in range(30):
data.append(random.randint(-1000, 1000))
printf(data, "raw data")
bubbleSort(data)
printf(data, "sorted data")
if __name__ == '__main__':
main()