算法定义
在有限步骤内解决数学问题的程序。通俗的讲算法就是我们解决问题的思路和步骤(生活中的问题可以抽象出数学模型,符合定义)
算法的条件
输入(input)
输出(output)
明确性(definiteness)
有限性(finiteness)
有效性(effectiveness)
递归思想
就我目前所学的算法,很多都运用了递归的思想,如回溯,分治等等。
算法代码
def quickSort(list_before):
if len(list_before)<2:
return list_before
# 比基准数小的放左边(从第二个数开始比较)
left_part=[left_ele for left_ele in list_before[1:] if left_ele < list_before[0]]
# 比基准数大的放右边(从第二个数开始比较)
right_part=[right_ele for right_ele in list_before[1:] if right_ele > list_before[0]]
# 和基准数一样大的放在中间(从第一个数开始比较)
equal_part=[equal_ele for equal_ele in list_before[0:] if equal_ele == list_before[0]]
return quickSort(left_part)+equal_part+quickSort(right_part)
list_after=quickSort(list_before)
print(list_after)
python自带的指令‘sort’也可实现简单的列表排序
汉诺塔游戏,八皇后游戏等等均运用了递归的思想,上篇已经给出了原理,这里就不展开讲了。