数据结构都有哪些基本算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构都有哪些基本算法相关的知识,希望对你有一定的参考价值。

参考技术A

数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。

可以理解为:程序设计 = 数据结构 + 算法

数据结构算法具有五个基本特征:输入、输出、有穷性、确定性和可行性。

1、输入:一个算法具有零个或者多个输出。以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件。后面一句话翻译过来就是,如果一个算法本身给出了初始条件,那么可以没有输出。比如,打印一句话:NSLog(@"你最牛逼!");

2、输出:算法至少有一个输出。也就是说,算法一定要有输出。输出的形式可以是打印,也可以使返回一个值或者多个值等。也可以是显示某些提示。

3、有穷性:算法的执行步骤是有限的,算法的执行时间也是有限的。

4、确定性:算法的每个步骤都有确定的含义,不会出现二义性。

5、可行性:算法是可用的,也就是能够解决当前问题。

数据结果的基本算法有:

1、图搜索 (广度优先、深度优先)深度优先特别重要

2、排序

3、动态规划

4、匹配算法和网络流算法

5、正则表达式和字符串匹配

6、三路划分-快速排序

7、合并排序(更具扩展性,复杂度类似快速排序)

8、DF/BF 搜索 (要知道使用场景)

9、Prim  / Kruskal (最小生成树)

10、Dijkstra (最短路径算法)

11、选择算法

python分类算法都有哪些

参考技术A

常见的分类算法有:

    K近邻算法

    决策树

    朴素贝叶斯

    SVM

    Logistic Regression

参考技术B 十种常见排序算法一般分为以下几种:
(1)非线性时间比较类排序:
a. 交换类排序(快速排序、冒泡排序)
b. 插入类排序(简单插入排序、希尔排序)
c. 选择类排序(简单选择排序、堆排序)
d. 归并排序(二路归并排序、多路归并排序)
(2)线性时间非比较类排序:
a. 技术排序
b. 基数排序
c. 桶排序
总结:
(1)在比较类排序种,归并排序号称最快,其次是快速排序和堆排序,两者不相伯仲,但是有一点需要注意,数据初始排序状态对堆排序不会产生太大的影响,而快速排序却恰恰相反。
(2)线性时间非比较类排序一般要优于非线性时间比较类排序,但前者对待排序元素的要求较为严格,比如计数排序要求待待排序数的最大值不能太大,桶排序要求元素按照hash分桶后桶内元素的数量要均匀。线性时间非比计较类排序的典型特点是以空间换时间。

以上是关于数据结构都有哪些基本算法的主要内容,如果未能解决你的问题,请参考以下文章

android加密算法都有哪些

java中都有哪些数据结构

数据结构的排序方法都有哪些?

python中都有哪些简单的算法?

大数据挖掘方法都有哪些?

python分类算法都有哪些