数据结构论坛

首页 » 分类 » 常识 » 基本的C算法有哪些开课吧
TUhjnbcbe - 2024/4/5 8:07:00

众所周知想要成为C++开发工程师,需要掌握的知识有很多,这不仅包括数据类型、数据结构、数据变量的信息,还需要了解一定的算法信息。那么基本的C++算法有哪些?

基本的C++算法有哪些?开课吧

基本的C++算法分为三类:排序算法、树算法、图算法。算法思想有三种:递推、分治、动态规划以及贪心算法。

排序算法:(对基本排序算法的时间复杂度分析主要考虑比较次数、数据交换次数)。

冒泡排序:针对数组、本地排序、需要交换数据。O(1)额外空间。

选择排序:一般针对数组、本地排序、需要交换数据。O(1)的额外空间。

插入排序:可以是针对数组的本地排序,此时需要移动大片数据,但是比较次数是O(N*logN)。如果是针对链表,比较次数是O(N^2),但是不需要交换数据。

注意:一般排序都是针对数组的本地排序,数组与链表相比,可以随机访问,空间使用效率更高(链表需要存放指针),而链表一般对于插入与删除操作有更好的性能。

基本的C++算法有哪些?开课吧

树的算法:树一般用链表实现,通常用树的数据结构实现数据的快速插入、删除、查找。

1、平衡二叉查找树。RB-Tree、AVL、Treap、伸展树(无需存放额外信息)。

2、B树。用于建立文件系统或数据库的索引。B树的设计目标是减少IO访问次数。B树也是一个平衡树。

3、二项树、二项堆、费波那奇堆。

图的算法:

1、图的表示。有向图、无向图的邻接表表示、矩阵表示。

2、广度优先搜索、深度优先搜索。

3、最小生成树。针对无向连通图的,常见的算法有Kruskal算法和Prim算法。

4、最短路径。有权值的最短路径问题。可以是有向图,可以是无向图。权值可以为负值。

5、求所有点之间的最短路径。矩阵上的动态规划算法。

1
查看完整版本: 基本的C算法有哪些开课吧