![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 83
小妖爱学习
厦门大学本科生 |
浙江大学研究生
展开
-
【算法-3】通俗理解递归回溯法,附马踏棋盘python代码+注释
概述 递归回溯法:叫称为试探法,按选优条件向前搜索,当搜索到某一步,发现原先选择并不优或达不到目标时,就退回一步重新选择。 比较经典的问题包括骑士巡逻、八皇后和迷宫寻路等。 python示例代码 个人认为算法关键点有2点: 1.理解board[row][col]==0代表改块棋盘没有走过 2.在patrol函数的最后(第35行),board[row][col]=0消除走过的痕迹(因为试探之后发...原创 2019-12-04 16:12:33 · 757 阅读 · 3 评论 -
【算法-2】排序算法-快速排序,附python代码+注释
概述 快速排序的整体思想是分治法 一开始寻找一个基准值,在我的这份代码中是取分区的最后一个值s,通过一次操作,将小于s的数放在s左侧,大于s的数放在s右侧。(这个操作在代码中体为**_partition()函数**) 我觉得理解好这个函数加上有分治迭代的思想就能掌握快速排序了 这样,通过s将原来的列表分为了左右两个子列表(左边都小于s,右边都大于s)。那么再对左右两个子列表同样进行上边的操作(这里...原创 2019-12-04 11:43:00 · 218 阅读 · 0 评论 -
【算法-1】排序算法-归并排序,附python代码+注释
概述 归并排序就是把待排序的分为左右两份,而左右两份分别再分成左右两份,如此递归下去,直到每一份只有一个元素(只有一个元素,那么这一份肯定是有序的)。再结合合并方法(将两个有序的列表合并成一个有序的列表),最终完成排序。 递归分区示意图如下: 合并示意图如下: 在此感谢CoderJed在简书上的图示分享,引用地址 https://www.jianshu.com/p/33cffa1ce613 ...原创 2019-12-03 17:53:06 · 266 阅读 · 0 评论 -
【算法-0】排序算法-双向冒泡排序(也称鸡尾酒排序、搅拌排序),附python代码+注释
概述 从名字就可以看出来,是双向的冒泡排序。 冒泡排序,每次都是从左往右,交换相邻的元素,从而达到循环一边可以把最大的元素放在右边。 而双向冒泡排序,在完成一次从左往右的冒泡排序后,再从右往左进行冒泡,从而把小的元素放在左边。 下面这张图可以很好地表达: 相对于简单冒泡排序,双向冒泡排序有什么优点 可以减少外层循环的次数 python示例代码 def bubble_sort(origin_ite......原创 2019-12-03 17:40:26 · 2004 阅读 · 0 评论