查找出现次数的流程图(二分查找)

Posted

技术标签:

【中文标题】查找出现次数的流程图(二分查找)【英文标题】:Flowchart to find the number of occurrences (binary search) 【发布时间】:2021-11-18 02:12:24 【问题描述】:

我从来没有创建过有点复杂的流程图,所以我现在有点困惑。

这是我写的代码:

def binary_occurences(arr, target):

    start = 0
    end = len(arr)-1
    placement = -1
    occurence = 0

    while start <= end:
        center = (start + end)//2
        if target == arr[center]:
          placement = center
          end = center - 1
        elif target < arr[center]:

            end = center - 1
        else:
            start = center + 1

    if placement == -1:
        return 'your target element is not in the list'
    else:
        while (placement < len(arr) and arr[placement] == target):
            placement += 1
            occurence += 1

    print(f"Element target occurs occurence times")
 

根据这段代码,我做了一个流程图

flowchart

但这似乎有点乱,所以我不确定我是否正确,尤其是在 while 循环下。

谁能给我一个建议?提前致谢。

【问题讨论】:

请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。 【参考方案1】:

还不错。但是有几点建议:

如果您必须做两件(或更多)事情,然后再回到其他事情(如循环),您不必让每个元素都回去。只有最后一个。 如果多件事要回到一个(如if..elif..else 语句的多个结果)回到循环条件,请尝试对齐它们。如果他们的箭头重叠也没关系。

这就是我所说的:my version of your flowchart。我有点忽略了字体、大小和对齐方式,但我认为您可能有软件可以解决这些问题。

【讨论】:

以上是关于查找出现次数的流程图(二分查找)的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode——在排序数组中查找数字 I(二分查找)

剑指offer数组在排序数组中出现的次数

关于二分查找的一些思考

[剑指Offer]53-在排序数组中查找数字(二分查找)

剑指Offer-数字在排序数组中出现的次数

如何找到二分查找算法的迭代次数?