数据结构之一准备及预热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.其他知识补充

未完待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值