数据结构概念理解的例子

    xiaoxiao2023-03-24  5

     

    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; }

    无法打印。

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

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

    转载请注明原文地址: https://ju.6miu.com/read-1201803.html
    最新回复(0)