算法理论知识

算法理论知识

  • 排序
    • 二分查找
    • 冒泡排序
    • 插入排序
    • 选择排序
    • 快速排序
    • 堆排序
    • 希尔排序
    • 归并排序
    • 基数排序
  • 动态规划

排序

二分查找

start = 0
end = len(list)
mid = (start + end) // 2

冒泡排序

每次都是相邻元素两两比较并交换位置。

插入排序

就好比扑克牌(分左边排好序,右边待排序),每次都是从右边拿一张牌去左边排好序的序列中找插入的位置。

选择排序

从后面找最小的和前面那个元素进行交换

快速排序

从中找一个元素作为基准,小于它的放左边,大于它的放右边,相等的随便放哪边。

堆排序

是一种选择排序,构建初始堆和交换堆顶和末尾节点并重建堆

希尔排序

归并排序

基数排序

动态规划

找最优解(最大最小值)、方式数(计数)、求存在性(是否、能不能)
1.确定状态
最后一步:最优策略中使用的最后一枚硬币ak
转化成子问题:最少的硬币拼出最小的面值27-ak
2.转移方程
3.初始条件和边界情况
4.计算顺序

你可能感兴趣的:(AI,框架,算法)