Page 127 - 高中 信息技术 选择性必修1 数据与数据结构
P. 127

 5.2 查找









                         解决同一个问题,我们可以用不同的算法编写程序,不同的算法对数据结构的要求可

                    能是不同的。对比顺序查找与二分查找算法,当数据量较大时,二分查找会比顺序查找快
                    很多,这是它的主要优点,但它要求查找表是有序的,所以在进行二分查找之前,必须先
                    对查找表进行排序。另外,二分查找要求表是顺序存储的,为保持表的有序性,在进行插

                    入、删除操作时,都必须移动大量记录。因此,二分查找的高查找效率是以排序为代价

                    的,所以它特别适合一经建立就很少移动而且经常需要查找的线性表。
                         了解不同算法的特点,可以帮助我们在解决实际问题时,从不同的算法中选择出较为
                    合适的一种,或对现有算法进行改进或创新,从而设计出更好的算法。




                         讨 论


                         理解顺序查找和二分查找的思想和算法实现过程,分析二分查找中的迭代过程是如何
                    进行的。体验顺序查找、二分查找两种实现方法在不同数据量上运行速度的差异。数据量

                    要多大,才有明显差异呢?



                         分 析                 广东教育出版社


                         在编写“超市促销商品的选择与查询程序设计”程序之前,首先要抽取促销商品的相
                    关数据,列出促销商品共有的属性,如编号、名称、数量、价格、存放位置、销量、销售

                    额等,根据本次促销活动的原则,选择与问题相关的属性,并用数据来表示这些属性;然
                    后分析提取出来的各属性之间的关系,确定它们之间的数据关系,进而建立数据模型。

                         根据促销商品数据模型的逻辑关系,选择一维数组来组织、存储促销商品的数据,并
                    定义如下的数据结构:

                         struct ShangPinType  //定义查找所用到的数据结构
                         {
                           int BianHao  //数据项商品编号的类型为整型

                           int Where    //数据项商品存放货架的类型为整型
                           int Count    //数据项剩余商品数量的类型为整型
                         };

                         根据上面的数据结构,设计查询促销商品信息的算法:输入需查询商品的编号,然后
                    在数组中查找该编号,若查找到此编号就输出该商品的信息。数据量小时可以用顺序查找

                    算法;数据量比较大时,顺序查找花费时间较多,应该选用查找速度更快的二分查找。完
                    整程序请参阅教科书配套学习资源包。






                                                                                                                    119119







          21X2204.indd   119                                                                                       2019/9/26   13:53:39
   122   123   124   125   126   127   128   129   130   131   132