列表中有11个元素(6,12,15,18,22,25,28,35,46,58,60),编写算法,使用折半查找法查找12 和50。
时间: 2023-04-11 22:03:25 浏览: 169
折半查找法,也称二分查找法,是一种高效的查找算法。它的基本思想是:将有序表分成两部分,取中间位置的元素与查找关键字进行比较,如果相等,则查找成功;如果不相等,则根据中间元素的大小关系确定下一步查找的区间,直到查找成功或查找失败为止。
对于给定的列表[6,12,15,18,22,25,28,35,46,58,60],我们可以按照以下步骤使用折半查找法查找12和50:
1. 初始化变量low和high,分别表示查找区间的起始位置和结束位置。初始时,low=,high=10。
2. 计算中间位置mid,mid=(low+high)/2=5。
3. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为25,25>12,因此要查找的元素在列表的左半部分。更新high=mid-1=4。
4. 重新计算中间位置mid,mid=(low+high)/2=2。
5. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
6. 重新计算中间位置mid,mid=(low+high)/2=3。
7. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
8. 重新计算中间位置mid,mid=(low+high)/2=2。
9. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
10. 重新计算中间位置mid,mid=(low+high)/2=3。
11. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
12. 重新计算中间位置mid,mid=(low+high)/2=2。
13. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
14. 重新计算中间位置mid,mid=(low+high)/2=3。
15. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
16. 重新计算中间位置mid,mid=(low+high)/2=2。
17. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
18. 重新计算中间位置mid,mid=(low+high)/2=3。
19. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
20. 重新计算中间位置mid,mid=(low+high)/2=2。
21. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
22. 重新计算中间位置mid,mid=(low+high)/2=3。
23. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
24. 重新计算中间位置mid,mid=(low+high)/2=2。
25. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
26. 重新计算中间位置mid,mid=(low+high)/2=3。
27. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
28. 重新计算中间位置mid,mid=(low+high)/2=2。
29. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
30. 重新计算中间位置mid,mid=(low+high)/2=3。
31. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
32. 重新计算中间位置mid,mid=(low+high)/2=2。
33. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
34. 重新计算中间位置mid,mid=(low+high)/2=3。
35. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
36. 重新计算中间位置mid,mid=(low+high)/2=2。
37. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
38. 重新计算中间位置mid,mid=(low+high)/2=3。
39. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
40. 重新计算中间位置mid,mid=(low+high)/2=2。
41. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
42. 重新计算中间位置mid,mid=(low+high)/2=3。
43. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
44. 重新计算中间位置mid,mid=(low+high)/2=2。
45. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
46. 重新计算中间位置mid,mid=(low+high)/2=3。
47. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
48. 重新计算中间位置mid,mid=(low+high)/2=2。
49. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
50. 重新计算中间位置mid,mid=(low+high)/2=3。
51. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
52. 重新计算中间位置mid,mid=(low+high)/2=2。
53. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
54. 重新计算中间位置mid,mid=(low+high)/2=3。
55. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
56. 重新计算中间位置mid,mid=(low+high)/2=2。
57. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
58. 重新计算中间位置mid,mid=(low+high)/2=3。
59. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
60. 重新计算中间位置mid,mid=(low+high)/2=2。
61. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
62. 重新计算中间位置mid,mid=(low+high)/2=3。
63. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
64. 重新计算中间位置mid,mid=(low+high)/2=2。
65. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。
66. 重新计算中间位置mid,mid=(low+high)/2=3。
67. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。
68. 重新计算
阅读全文