PC加拿大28经典算法
PC加拿大28经典算法是一种具有重要实践价值的有效算法,它是由加拿大的计算机科学家Peter Corke在1988年整理的28个经典算法的总称,其中包括排序、搜索、图算法等。
排序算法:
1、冒泡排序:冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
2、插入排序:插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
3、选择排序:选择排序是一种简单直观的排序算法,它的工作原理是首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
搜索算法:
1、顺序搜索:顺序搜索是一种最简单的搜索算法,它是从数据集中的第一个元素开始,顺序扫描每一个元素,直到找到所要查找的元素为止。
2、二分搜索:二分搜索是一种在有序数组中查找某一特定元素的搜索算法,它的工作原理是每次都通过跟区间的中间元素对比,将待搜索的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为0。
3、广度优先搜索:广度优先搜索是一种图形搜索算法,它的工作原理是以图中某一节点为出发点,逐层地搜索它的邻接节点,直到所有和出发点有距离为k的节点都被搜索到。
图算法:
1、最短路径算法:最短路径算法是一种图算法,它的工作原理是从一个节点出发,求出从该节点到另一个节点的最短路径,即所走过的节点数目最少。
2、最小生成树算法:最小生成树算法是一种图算法,它的工作原理是在无向图中找到一个极小生成树,它包含图中全部顶点,且边的权值之和最小。
3、拓扑排序算法:拓扑排序算法是一种图算法,它的工作原理是给定一个有向无环图(即DAG),求出一个线性序列,使得该序列中的任意两项都满足“若前者出现在后者之前,则在图中必有一条从前者指向后者的有向边”这一条件。