随笔分类 -  数据结构与算法笔记

记录常用重点算法
摘要:线性时间选择——选择第k小的数 采用的算法思想和快速排序十分相似,选取基准进行一次快排,得到一个基准和左侧小于基准右侧大于基准的数组。然后判断基准的位置,如果第k个数在左边便接着向左递归,如果在右侧便接着向右侧递归。 程序实现 #include<iostream> #include<set> #in 阅读全文
posted @ 2021-05-01 10:33 布拉多1024 阅读(164) 评论(0) 推荐(0) 编辑
摘要:快速排序算法 快速排序的算法思想就是每一次选取一个元素,然后以此元素为基准,将大于基准的元素放到基准的后面,将小于基准的元素放到基准的前面,然后递归下去直到只有他自己为止。平均算法时间复杂性为O(nlogn)。由于有时候会遇到数组的大部分是符合降序排序的,这样就会大大影响时间复杂性。因此,再程序中采 阅读全文
posted @ 2021-05-01 10:09 布拉多1024 阅读(71) 评论(0) 推荐(0) 编辑
摘要:算法思想 图中一个未访问的顶点 V 开始,沿着一条路一直走到底,然后从这条路尽头的节点回退到上一个节点,再从另一条路开始走到底...,不断递归重复此过程,直到所有的顶点都遍历完成,它的特点是不撞南墙不回头,先走完一条路,再换一条路继续走。 代码实现 邻接矩阵实现: 结构体定义:使用二维数组来定义,存 阅读全文
posted @ 2021-02-09 22:06 布拉多1024 阅读(79) 评论(0) 推荐(0) 编辑
摘要:qsort 快排函数(C语言) 函数原型 void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)) ; 头文件 #include<stdlib.h> base :要进行排序 阅读全文
posted @ 2021-01-31 09:40 布拉多1024 阅读(117) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示