PHP學習之統計某個數位在排序陣列中出現的頻次

2020-07-16 10:05:30
本篇文章的主要內容是用PHP實現統計一個數位在排序陣列中出現的次數,感興趣的朋友可以了解一下,希望能夠幫助到你。

問題:統計一個數位在排序陣列中出現的次數。

思路1:一般的遍歷,比較有沒有相等的,有就自動+1;

思路2:利用二分法,將相等的數先找到,記錄下標。然後遍歷一下從0到改下標和從該下標到頭總共多少相等的,記錄。

left=getLeft(data,k)
right=getRight(data,k)
retun right-left+1

getLeft data,k
    left=0
    right=arr.length-1
    mid=left+(right-left)/2
    while  left<=right
        if arr[mid]<k    //關鍵
            left=mid+1
        else
            right=mid-1
        mid=left+(right-left)/2
    return left
getRight data,k
    left=0
    right=arr.length-1
    mid=left+(right-left)/2 
    while  left<=right
        if arr[mid]<=k   //關鍵
            left=mid+1
        else
            right=mid-1
        mid=left+(right-left)/2
    return right

相關教學:PHP視訊教學

以上就是PHP學習之統計某個數位在排序陣列中出現的頻次的詳細內容,更多請關注TW511.COM其它相關文章!