import random
import time
def int_generator(n, floor, ceil):
arr = []
for x in range(n):
arr.append(random.randint(floor, ceil))
return arr
def bubble_sort(num):
if len(num) == 0 or len(num) == 1:
return num
for i in range(len(num)):
for j in range(len(num)-1-i):
if num[j] > num[j+1]:
temp = num[j]
num[j] = num[j+1]
num[j+1] = temp
return num
def insert_sort(num):
if len(num) == 0 or len(num) == 1:
return num
for i in range(1, len(num)):
value = num[i]
j = i-1
while j >= 0 and num[j] > value:
num[j+1] = num[j]
j -= 1
num[j+1] = value
return num
def partition(arr, low, high):
p = arr[low]
while low < high:
while low < high and arr[high] >= p:
high -= 1
arr[low] = arr[high]
while low < high and arr[low] <= p:
low += 1
arr[high] = arr[low]
arr[low] = p
return low
def quick_sort(arr, low, high):
if low < high:
p = partition(arr, low, high)
quick_sort(arr, low, p-1)
quick_sort(arr, p+1, high)
print('-----------------冒泡排序-----------------')
start1 = time.time()
for _ in range(50):
arr1 = int_generator(1000, 1, 100000)
bubble_sort(arr1)
end1 = time.time()
result1 = end1-start1
print(arr1)
print("插入排序时间:%ds" % result1)
print('------------------------------------------\n')
print('-----------------插入排序-----------------')
start2 = time.time()
for _ in range(50):
arr2 = int_generator(1000, 1, 100000)
insert_sort(arr2)
end2 = time.time()
result2 = end2-start2
print(arr1)
print("插入排序时间:%ds" % result2)
print('------------------------------------------\n')
print('-----------------快速排序-----------------')
start3 = time.time()
for _ in range(50):
arr3 = int_generator(1000, 1, 100000)
quick_sort(arr3, 0, len(arr3) - 1)
end3 = time.time()
result3 = end3-start3
print(arr1)
print("快速排序时间:%ds" % result3)
print('------------------------------------------\n')