数据结构
文章平均质量分 51
惊鸿.Jh
这个作者很懒,什么都没留下…
展开
-
DijkSkra算法C++实现
2.每次从未加入final集合的顶点中选取一个到已求解集合中距离最短的顶点,加入集合(将final设为true)。最后更新源点到其他所有点的距离dist[],看:经过当前点到其他所有点的距离小,还是不经过当前点到其他点的距离更小,选取二者较小值;1.初始化:集合final为已经求解了最短路径的顶点集,初始时,将final[源点]设为true,其他都为false。集合dist[j]为源点到j的最短距离,集合path[j]为当前j走到顶点j的上一个顶点。此算法适用于单源最短路径求解。原创 2024-04-11 19:51:51 · 200 阅读 · 1 评论 -
常用排序算法及实现(C++)
同时算法时间复杂度取决于基准值的选取,当基准值选取较极端时,时间复杂度趋于O(n^2),当基准值选取合适,最优时间复杂度为O(nlogn).实现原理:基于分治思想,选取基准值,将基准值放在mid位置,基准值左边元素均小于基准值,右边元素均大于基准值。建堆过程:对于i层节点,每次下滑最多(h-1)层,下滑过程中对比次数不超过2*(h-i),累计所得为O(n);在直接插入排序中,当待排序列为正序时,时间复杂度为O(n).时间复杂度T(n)=O(n^2);时间复杂度T(n)=O(n^2);时间复杂度O(n^2)原创 2024-04-07 22:11:09 · 421 阅读 · 1 评论