![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
c-continue;
这个作者很懒,什么都没留下…
展开
-
排序——基数(桶)排序
Vol8排序:笔试和面试的重点.1.算法描述;2.实现;3.效率分析(时间复杂度,空间复杂度,稳定性)稳定性:针对关键字相同的数据,排序前如果A在A"的前面,排序后还能保证A在A"的前面,则算法稳定,否则不稳定稳定性判断依据:有没有跳跃的交换数据,没有则稳定8.基数(桶)排序代码思想:低位优先,将所有的数字,从低位(个位)开始到高位,依次进入相应的队列,再出,直到全部有序时间复杂度:O(dn),d为位数空间复杂度:O(n)稳定性:稳定(没有数据交换)//获取最大数字的位数static原创 2021-08-12 19:11:45 · 109 阅读 · 0 评论 -
排序——归并排序
Vol7排序:笔试和面试的重点.1.算法描述;2.实现;3.效率分析(时间复杂度,空间复杂度,稳定性)稳定性:针对关键字相同的数据,排序前如果A在A"的前面,排序后还能保证A在A"的前面,则算法稳定,否则不稳定稳定性判断依据:有没有跳跃的交换数据,没有则稳定7.归并排序代码思想:将两段有序的数据合并成一段有序的数据,直到所有的数据有序时间复杂度:O(nlogn)空间复杂度:O(n)稳定性:稳定(没有交换)//一次归并//gap:归并段的长度static void Merge(int原创 2021-08-12 19:07:09 · 76 阅读 · 0 评论 -
排序——堆排序
Vol6排序:笔试和面试的重点.1.算法描述;2.实现;3.效率分析(时间复杂度,空间复杂度,稳定性)稳定性:针对关键字相同的数据,排序前如果A在A"的前面,排序后还能保证A在A"的前面,则算法稳定,否则不稳定稳定性判断依据:有没有跳跃的交换数据,没有则稳定堆:分为大根堆和小根堆大根堆:在这棵二叉树中所有的父都大于子小根堆:在这棵二叉树中所有的父都小于子代码思想:建大根堆,调整后将根和待排序的最后一个交换,重复时间复杂度:O(nlogn)空间复杂度:O(1)稳定性:不稳定(跳跃)原创 2021-08-12 18:17:59 · 75 阅读 · 0 评论 -
排序——选择排序
Vol5排序:笔试和面试的重点.1.算法描述;2.实现;3.效率分析(时间复杂度,空间复杂度,稳定性)稳定性:针对关键字相同的数据,排序前如果A在A"的前面,排序后还能保证A在A"的前面,则算法稳定,否则不稳定稳定性判断依据:有没有跳跃的交换数据,没有则稳定5.选择排序代码思想:每次从待排序中找到最小值和待排序的第一个交换时间复杂度:O(n^2)空间复杂度:O(1)稳定性:不稳定 //例如(3,3,1,…)//选择法排序void SelectSort(int *arr,int len原创 2021-08-12 18:10:22 · 74 阅读 · 0 评论 -
排序——快速排序
Vol4排序:笔试和面试的重点.1.算法描述;2.实现;3.效率分析(时间复杂度,空间复杂度,稳定性)稳定性:针对关键字相同的数据,排序前如果A在A"的前面,排序后还能保证A在A"的前面,则算法稳定,否则不稳定稳定性判断依据:有没有跳跃的交换数据,没有则稳定4.快速排序设第一个数的下标为low,最后一个数的下标为high代码思想:找一个基准(常用第一个数据) 将其存入tmp,1.从后往前找比基准小的数据往前移,high–,2.然后从前往后找比基准大的数据往后移,low++,重复1,2,当low原创 2021-08-12 17:46:40 · 77 阅读 · 0 评论 -
排序——冒泡排序
排序Vol3排序:笔试和面试的重点.1.算法描述;2.实现;3.效率分析(时间复杂度,空间复杂度,稳定性)稳定性:针对关键字相同的数据,排序前如果A在A"的前面,排序后还能保证A在A"的前面,则算法稳定,否则不稳定稳定性判断依据:有没有跳跃的交换数据,没有则稳定3.冒泡排序代码思想:两两比较,大的往后,从当前数字开始,两两比较往后找,目的是把大的交换到后面时间复杂度:O(n^2)空间复杂度:O(1)稳定性:稳定//冒泡排序,两两比较,大的往后void BubbleSort(int *原创 2021-08-12 17:29:24 · 83 阅读 · 0 评论 -
排序——希尔排序(shell)
排序Vol2排序:笔试和面试的重点.1.算法描述;2.实现;3.效率分析(时间复杂度,空间复杂度,稳定性)稳定性:针对关键字相同的数据,排序前如果A在A"的前面,排序后还能保证A在A"的前面,则算法稳定,否则不稳定稳定性判断依据:有没有跳跃的交换数据,没有则稳定2.希尔排序(Shell)代码思想:间隔式的分组,利用插入排序让组内有序,然后缩小分组再排,直到组数为1,则全部有序时间复杂度:O(n^1.3~ n^1.5)空间复杂度:O(1)稳定性:不稳定(跳跃)//一趟shell过程,ga原创 2021-08-12 17:24:28 · 65 阅读 · 0 评论 -
排序——(简单)直接插入排序
排序Vol1提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录排序Vol1前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2021-08-12 17:15:10 · 154 阅读 · 0 评论 -
字符串查找——KMP算法
字符串查找Vol2面试重点2.KMP算法设主串下标为 i,子串下标为 j,皆初始为0代码思想:i不回退,j退到该退的位置时间复杂度:O(n+m) //设主串长度为n,子串长度为m//根据str计算其next数组,并返回//这个函数是在计算-在子串中每个位置都失配的k值,并将k值存在next数组里static int *GetNext(const char * str){ int len = strlen(str); int *next = (int *)malloc(len*sizeo原创 2021-08-12 16:04:28 · 131 阅读 · 0 评论 -
字符串查找——(简单)朴素查找算法
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-08-12 15:24:12 · 223 阅读 · 0 评论