#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/8/11 12:59 AM
# @Author : Blake
import random
def quick_sort(array):
print('every list: ', array)
if len(array) < 2:
return array
else:
pivot = array[0]
less = [i for i in array[1:] if i < pivot]
greater = [i for i in array[1:] if i > pivot]
return quick_sort(less) + [pivot] + quick_sort(greater)
array = list(range(10))
random.shuffle(array)
print(quick_sort(array))
global count
count = 0
def quick_resort(a, b):
global count
if a > b:
x = a % b
if x == 0:
return b, count
count += 1
print(x, b)
return quick_resort(x, b)
if a < b:
x = b % a
if x == 0:
return a, count
count += 1
print(a, x)
return quick_resort(a, x)
print('-' * 30)
numbers = []
for i in range(2):
numbers.append(random.randint(0, 1000000))
a, b = numbers[0], numbers[1]
print('原始模型 ', a, b)
print('最小切分数,切分次数:', (quick_resort(a, b)))
every list: [0, 7, 8, 5, 6, 4, 2, 3, 1, 9]
every list: []
every list: [7, 8, 5, 6, 4, 2, 3, 1, 9]
every list: [5, 6, 4, 2, 3, 1]
every list: [4, 2, 3, 1]
every list: [2, 3, 1]
every list: [1]
every list: [3]
every list: []
every list: [6]
every list: [8, 9]
every list: []
every list: [9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
------------------------------
原始模型 191541 164789
26752 164789
26752 4277
1090 4277
1090 1007
83 1007
83 11
6 11
6 5
1 5
最小切分数,切分次数: (1, 9)