• 数据结构笔记(一)


    数据结构学习笔记

    1. 绪论

    1.1计算机与算法

    a.算法定义:是指基于特定的计算机模型,旨在解决某一信息处理问题而设计的一个指令序列。

    b.算法的要素:输入,输出,基本操作

    c.算法的性质:确定性与可行性,有穷性与正确性,鲁棒性。

    注:这里的鲁棒性是指算法要能够适应系统各种极端情况,以及一些在考虑范围内的变化。

    d.算法的效率:效率的前提是保证可计算性,然后再从时间和空间的角度度量算法的计算成本,进而依此尺度对不同算法进行比较和评判。

    1.2复杂度的度量

    a.时间复杂度:将算法的执行时间表示成输入规模的函数,这个函数定义为算法的时间复杂度,T(n)。

    b.渐进复杂度:T(n)的渐进上界f(n),即 T(n)<c*f(n).

    T(n)=O(f(n)),记号O() 有两条性质:1.O(C*f(n))=O(f(n)) ;2.a>b>0时,O(n^a+n^b)=O(n^a).

    c.空间复杂度:算法及运算过程中数据所需存储空间的大小。

    1.3复杂度分析

    几种渐进复杂度的定义和举例。

    1.4递归

    语录:分支和转向是算法的灵魂,函数和过程及其之间的调用,是经过抽象和封装之后,实现分支和转向的一个重要机制;而递归则是函数和过程调用的一种特殊形式,即允许函数和过程自我调用

    a.线性递归,减而治之。即每一次递归的深入都会得到一个规模更

    小的待求解问题,直至最小可解问题为止。算法实例:

    //求和函数
    int sum(int A[], int n){
        if (n < 1)
            return 0;//递归基
        else
            return sum(A, n - 1) + A[n - 1];
    }

    其中return 0;是递归基,是递归算法的必需品,是递归结束的条件,必须保证程序能够执行到这一点。递归分析的复杂度问题,上述算法的复杂度为:

    (递归调用的深度n)*(每一步执行的命令个数3) =  O(n)

    b.递归模式

    多递归基: 例子:数组倒置

    //倒置数组元素
    void reverse(int* A, int low,int high )
    {
        if (low < high)
        {
            //swap(A[low], A[high]);
            int temp;
            temp = A[high];
            A[high] = A[low];
            A[low] = temp;
            reverse(A, low + 1,high - 1);
        }
    }

    多向递归: 这里对比了蛮力版的求幂计算方法和多向递归方法的一个对比

    //计算2^n
    //蛮力解法
    _int64 power2BF_I(int n)
    {
        _int64 pow = 1;
        while (n-- > 0)
        {
            pow <<= 1;
        }
        return pow;
    }
    //计算2^n
    //多向递归
    inline _int64 sqr(_int64 a)
    {
        return a*a;
    }
    _int64 power2(int n)
    {
        if (n == 0)
            return 1;
        return (n & 1) ? sqr(power2(n >> 1) )<< 1:sqr(power2(n >> 1));//>>x,右移x位,是除2^x
    }

    对于复杂度来讲蛮力法的复杂度为O(n),而多向递归的复杂度为O(r),其中n=2^r.

  • 相关阅读:
    Region-Based Segmentation
    不同特征值对应的特征向量
    Edge Linking
    Canny Edge Detector
    度量与非度量方法
    Edge detection using LoG
    Sobel算子
    Edge Model
    Laplacian算子
    图像处理中的一阶导数与二阶导数
  • 原文地址:https://www.cnblogs.com/simayuhe/p/5179671.html
Copyright © 2020-2023  润新知