查找与排序,KMP算法栈队列

前言:
很多编程都离不开算法,那么作为linux服务器开发我们应该学哪些数据结构与算法呢?

我觉得离不开以下这几个知识点

一:排序与查找

插入排序,快速排序,希尔排序,桶排序,归并排序

二:常用算法

布隆过滤器,字符串匹配KMP算法,回溯算法,贪心算法,推荐算法,深度优先,广度优先

三:常用数据结构

平衡二叉树,红黑树,B-树,kmp算法,栈/队列,布隆过滤器

四:常用的设计模式

单列模式,责任链模式,过滤器模式,发布订阅模式,代理模式,工厂模式

下面讲讲:查找与排序,KMP算法栈队列
排序查找与排序,KMP算法栈队列_第1张图片
冒泡排序查找与排序,KMP算法栈队列_第2张图片
希尔排序
京东面试题2017年:
对关键字{10,20,8,25,35,6,18,30,5,15,28}序列进行希尔排序,取增量d =5时,排序结果为( )

A.{6,18,8,5,15,10,20,30,25,35,28}

B. {10,18,8,5,15,6,20,30,25,35,28}

C. {10,20,8,5,15,6,18,30,25,35,28}

D. {10,20,30,5,8,6,15,18,25,28,35

希尔排序查找与排序,KMP算法栈队列_第3张图片
希尔排序查找与排序,KMP算法栈队列_第4张图片
归并排序

微软面试题2010年:

在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数
大于后面的数,那么它们就称为一个逆序数对。一个排列中逆序的总数就称为这个排列的
逆序数。如{2,4,3,1}中,2和1,4和3,4和1,3和1是逆序数对,因此整个数组的逆序数
对个数为4,现在给定一数组,要求统计出该数组的逆序数对个数。

归并排序查找与排序,KMP算法栈队列_第5张图片
归并排序查找与排序,KMP算法栈队列_第6张图片
归并排序查找与排序,KMP算法栈队列_第7张图片
快速排序

1.快排为什么比冒泡排序速度快?如何选取快排的枢轴?怎样选效率会高一些?

2.请使用快速排序把数组从低到高排序。如数组 [ 10,0, 3, 9, 2, 14, 8, 27, 1, 5, 8, -1, 26 ]

快速排序查找与排序,KMP算法栈队列_第8张图片
快速排序查找与排序,KMP算法栈队列_第9张图片
快速排序查找与排序,KMP算法栈队列_第10张图片
快速排序查找与排序,KMP算法栈队列_第11张图片
快速排序查找与排序,KMP算法栈队列_第12张图片
其余排序在这里插入图片描述
KMP算法
面试题:写一个在一个字符串(n)中寻找一个子串(m)第一个位置的函数。
kMP算法查找与排序,KMP算法栈队列_第13张图片
最后推荐学习资料
linux入门资料,linux服务器,架构师教程,784033627群文件自行下载获取查找与排序,KMP算法栈队列_第14张图片

你可能感兴趣的:(c/c++,Linux服务器,架构,linux,数据结构与算法,linux服务器,linux开发)