python - 查找列表中的第一个偶数,算法复杂度优于线性

标签 python algorithm list complexity-theory

我的列表首先是奇数元素,然后是偶数元素,因此奇数元素在列表中首先出现,然后是偶数元素。例如:

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/

相关文章:

python - 创建Factory对象时如何设置SubFactory的值

python - df.drop_duplicates 删除了太多条目

python - 如何根据数值的顺序对包含组合数值和文本值的列表进行排序

python - 如何在列表中创建列表,其中每个 future 列表都由列表中的空格分隔

python - 在 python 中对字典的字典列表进行排序

python - Scrapy CrawlSpider - 仅在第一个 URL 完成后才开始爬行下一个 URL

python - 迭代多个 DataFrame 的更有效方法

c - 使用指针反转字符串中的单词

algorithm - Topcoder SRM 624 DIV II 3 级

python - 设置弹出(Python)