转载自博文:https://blog.csdn.net/baidu_32258281/article/details/78306489
1-10,10个数
折半查找
中位数为(5+6)/2=5.5
有些问题防止溢出求两数之和除2时使用? ??b+((a - b) >> 1)
?
①折半向上取整
第一层(第一次折半):? ? (1-10)->5.5->6
第二层(第二次折半): ? ?6左孩子(1-5)->3
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 6右孩子(7-10)->(8+9)/2=8.5->9
?
第三层(第三次折半): ? ?3左孩子(1-2)->(1+2)/2=1.5->2
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3右孩子(4-5)->(4+5)/2=4.5->5
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 9左孩子(7-8)->(7+8)/2=7.5->8
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 9右孩子(10)->10
?
第四层(第四次折半): ? ?2左孩子(1)->1
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5左孩子(4)->4
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 8左孩子(7)->7
②向下取整
原文:https://www.cnblogs.com/KeepZ/p/11778613.html