快速排序
2018-09-09 本文已影响0人
地铁姑娘
算法分析
- 判断数组数量是否需要排序,若只有一个值,则返回当前数组
- 设定一个基准 B,一般是第一位数,用于后面的比较
- 循环比较数组内的内容,比基准数 B 大的值放一个数组 R,比基准数小的值放一个数组 L
- 对数组 L 重复做步骤一~步骤四,也就是递归;同样的操作给数组 R
- 合并L,[B],R
代码实现
def quickSort(Arr):
if len(Arr)<2:
return Arr
else:
base = Arr[0]
left = []
right = []
num = len(Arr)
for i in range(1,num):
if base<Arr[i]:
left.append(Arr[i])
else:
right.append(Arr[i])
L = quickSort(left)
R = quickSort(right)
return [L,base,R]
result = []
def print_list(n):
for i in n:
if isinstance(i,list):
print_list(i)
else:
result.append(i)
return result
if __name__ == '__main__':
arrayAim = []
for i in range (10):
a = random.randint (1, 10)
arrayAim.append (a)
ourResult = quickSort(arrayAim)
print print_list(ourResult)