数据结构之一准备及预热2

4.函数

  • 用函数来缩短代码
  • 被传入函数的参数是否会改变
//1
int a;
void f(int x)
{
    ++x;
}

//2
void f(int &x)
{
    ++x;
}

如下
//调用代码
a=0;
f(a);

对于1中a的值仍然为0,对于2中a中的值为12中相当于a取代了x的位置,函数f()就是在对a本身进行操作,执行完调用代码后,a的值由0变为1.

上面2中讲到的是针对普通变量的"引用型",如果传入的变量是指针型变量,则如下3//3
void f(int *&x)
{
    ++x;
}

下面是数组作为参数的情况

//一维数组作为参数的函数声明方法
void f(int x[],int n)
{
    ...;//其中n用来说明数组元素的个数,并不是指数组总长度
}

//二维数组作为参数的函数声明方法
void f(int x[][maxSize],int n)
{
    ...;
}
注:如果函数的参数是二维数组,数组的第一个中括号内不需要写上数组长度,而第二个中括号内必须写上数组长度。
所传入的数组的二维长度也得是maxSize,否则出错。

可以理解为只要数组作为参数,都是引用型

  • 参数引用型的其他例子

    注:当参数自身改变时需要用引用型

//因为L本身要发生变化,所以要用引用型 
void insert(Sqlist &L,int x)
{
    int p,i;
    p=LocateElem(L,x);
    for(i=L.length;i>=p;--i)
    {
        L.data[i+1]=L.data[i];
    }
    L.data[p]=x;
    ++(L.length);
}
  • 有返回值的函数

5.算法时间复杂度分析

将算法中基本操作的执行次数作为算法时间复杂度的度量

各种时间复杂度常用的比较关系:

时间复杂度计算总结:
1).确定算法中的基本操作以及问题的规模。
2).根据基本操作执行情况计算出规模n的函数f(n),并确定时间复杂度为T(n)=O(f(n))中增长最快的项/此项的系数。

6.其他知识补充

未完待续…

阅读更多
个人分类: 数据结构
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

数据结构之一准备及预热2

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭