数据结构概念理解的例子_学习笔记01

 

1.解决问题的方法的效率,跟数据的组织方式有关:

例如:

在书店众多书中查找一本书,如果要一本一本找,效率很低。如果按拼音放,按二分查找,效率会高一些,但是如果要插入一本书,势必要先找到这本书对应的位置,然后将后面所有的书后移一位,由于数目庞大,耗费的时间精力也很巨大。

如果再将书划分一下种类,例如计算机类,社会科学类等等,再将类里的书按拼音排序,查找效率会提高,插入要移的位也会减少,这也是提高效率的一种方法。

当然,如果类分的少,那书依然很多 ,查找还是很麻烦,如果类分的太多,太细,比如书城的书分了上万类,那要知道这本书是哪一类,也很头疼,因此,如何分类也是一个需要斟酌的问题。

    举这个例子,是为了说明,解决问题的方法的效率,跟数据的组织方式有关。

 

2.解决问题方法的效率,跟空间的利用效率有关:

以两个程序说明:

要求:打印1000 000个数字

(1)用for循环打印

/*
**************************************************************************
* File Name: 1,PrintN.c
* Function : 1) void PrintN(int n)</span>
*            2) 
* Author   : BingX29 
* Created Time: 2016年09月27日
**************************************************************************
*/

#include <stdio.h>

void PrintN(int n)
{
    int i;
    for(i = 1; i <= n; i++)
    {
        printf("%d\n", i);
    }
}

int main()
{
    int n;

    printf("Please input a number:\n");
    scanf("%d",&n);
    PrintN(n);

    return 0;
}


顺利打印了1000 000个数字。

(2)用递归打印

/*
**************************************************************************
* File Name: 2.PrintNR.c
* Function : 1)void PintNR(int n) 
*            2) 
* Author   : BingX29 
* Created Time: 2016年09月27日
**************************************************************************
*/
#include <stdio.h>

void PrintNR(int n)
{
    if(n > 0)
    {
        PrintNR(n - 1);
        printf("%d\n",n);
    }
    return;
}

int main()
{
    int n;

    printf("Please input a number:\n");
    scanf("%d",&n);
    PrintNR(n);
    
    return 0;
}


无法打印。

因为程序在用递归的时候,需要用到大量的内存,当数据过大时,就会出现内存错误。

这就说明,解决问题方法的效率,跟空间的利用效率有关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值