算法数据结构
寂灭万乘
我喜欢代码,因为他能帮我创造另一个世界
展开
-
深入理解不同的二分查找C++
二分查找(版本A)以任一元素S[mid] = x为界,都可将区间分为三部分,且根据此时的有序性必有: S[low, mid) <= S[mid]<= S(mid, high) // 二分查找算法(版本A):在有序向量区间[low, high)内查找元素e,0 <= low<high<sizewhile (low < high) { //每步迭代可能要做两次比较判断,有三个分支 int原创 2017-10-06 18:10:40 · 583 阅读 · 0 评论 -
算法篇-union-find并查集
这个算法主要用来判断2点是否连通 在博客记录下来,方便以后能用 public class WeightedQuickUnionUF { private int[] parent; // parent[i] = parent of i private int[] size; // size[i] = number of sites in subtree rooted原创 2018-01-09 13:50:39 · 307 阅读 · 0 评论 -
算法篇-用栈来求解汉诺塔问题
算法篇-用栈来求解汉诺塔问题 阅读了java版的《程序员代码面试指南 IT名企算法与数据结构题目最优解》后,用c++以自己的想法完成了这道题 完整题目 在汉诺塔规则的基础上,限制不能从最左的塔移动到最右的塔上,必须经过中间的塔,移动的跨度只能是一个塔。当塔有N层的时候,打印最优移动过程和最优移动步数。 看到原题我实际上并不能理解这道题,百度后才理解 相传在古印度圣庙中,有一种被称原创 2018-01-12 20:19:32 · 1091 阅读 · 0 评论 -
C# A*寻路算法代码
using System; using System.Collections.Generic;public struct _mapPoint { public int x; public int y; } class FindWay { class Point { public Point() { } public Point(_map转载 2017-11-29 17:53:18 · 1712 阅读 · 2 评论 -
渐近符号
(1)O符号,f(n) = O(g(n)),表示f(n)的复杂度最多与g(n)一个数量级,即小于等于。(2)Ω符号,f(n) = Ω(g(n)),f(n)的复杂度最少与g(n)一个数量级,即大于等于。(3)o符号,f(n) = o(g(n)),表示f(n)的复杂度要比g(n)的数量级小,即小于。(4)ω符号,f(n) = ω(g(n)),表示f(n)的复杂度要比g(n)的数量级大,即大于。(5)Θ符转载 2017-10-01 16:06:27 · 596 阅读 · 0 评论 -
算法导论c++ 堆排序以堆类结构完整实现
程序不当之处,欢迎指正// HeapSort.cpp: 定义控制台应用程序的入口点。 #include "stdafx.h" #include <vector> #include <algorithm> //swap; #include <iostream> using namespace std;class Heap { private: int size;原创 2017-10-02 23:34:56 · 315 阅读 · 0 评论