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

第五章  数据结构的应用









                           二分查找过程分析:假设一维数组a中有10个元素:1,2,6,8,12,13,36,45,
                      49,85,在其中查找k=45的过程如下(用“[  ]”表示low和high,即当前查找范围的下界和
                      上界,mid指示查找范围的中间位置):



                                                  下标    0 1 2 3  4   5   6   7   8   9
                         第一次查找:元素[1 2 6 8 12 13 36 45 49 85]
                                                                      ↑
                                                                      mid
                         mid=(0+9)/2=4,取a[4]元素12,因为12<45,所以low=mid+1=5。
                                             广东教育出版社
                         第二次查找:元素  1 2 6 8 12[13 36 45 49 85]
                                                                                       ↑
                                                                                          mid
                         mid=(5+9)/2=7,a[7]元素为45,查找成功,返回mid=7。



                           在其中查找k=48的过程如下:



                                                  下标    0 1 2 3  4   5   6   7   8   9
                         第一次查找:元素[1 2 6 8 12 13 36 45 49 85]
                                                                            ↑
                                                                        mid
                         mid=(0+9)/2=4,取a[4]元素12,因为12<48,所以low=mid+1=5。
                         第二次查找:元素  1 2 6 8 12[13 36 45 49 85]
                                                                         ↑
                                                                            mid

                         mid=(5+9)/2=7,取a[7]元素45,因为45<48,所以low=mid+1=8。
                         第三次查找:元素  1 2 6 8 12 13 36 45[49 85]
                                                             ↑
                                                                                     mid
                         mid=(8+9)/2=8,取a[8]元素49,因为49>48,所以high=mid-1=7。
                         第四次查找:元素  1 2 6 8 12 13 36 45][49 85

                                                              ↑↑
                                                                             high low

                         此时,high<low,循环结束,说明查找失败,返回-1。










             118 118







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