我的列表首先是奇数元素,然后是偶数元素,因此奇数元素在列表中首先出现,然后是偶数元素。例如:
list = [5,99,3,7,111,13,4,24,4,8]
因此,偶数元素在数字 4 的奇数元素之后开始。以线性复杂度执行此操作会很简单,但它必须具有更好的复杂度,因此我想到了二分搜索,但我不知道如何在这种情况下实现它。感谢帮助。
最佳答案
由于值已经组织完毕,只需取集合的中间(数组、列表)并检查它是偶数还是奇数。
均匀吗?那么第一个偶数值位于集合的前半部分,您可以丢弃后半部分,或者它是当前的。
奇怪吗?然后第一个偶数值还没有到来,丢弃前一半,保留第二个作为你的新集合,继续这样做,直到找到它。
一些视觉指南: https://www.freecodecamp.org/news/binary-search-in-python-visual-introduction/
关于python - 查找列表中的第一个偶数,算法复杂度优于线性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59957708/