MinHeap(未完待續(xù))

private void BuildHeap(int[] arr)
{
    for (int i = (arr.Length - 2) / 2; i >= 0; i--)
    {
        DownAdjust(arr, i);
    }
}

private void UpAdjust(int[] arr)
{
    int childIndex = arr.Length - 1;
    int parentIndex = (childIndex - 1) / 2;
    int temp = arr[childIndex];

    // 注意條件
    while (childIndex > 0)
    {
        if (temp < arr[parentIndex])
        {
            arr[childIndex] = arr[parentIndex];
            childIndex = parentIndex;
            parentIndex = (childIndex - 1) / 2;
        }
        else
        {
            break;
        }
    }

    arr[childIndex] = temp;
}

private void DownAdjust(int[] arr, int parentIndex)
{
    int childIndex = parentIndex * 2 + 1;
    int temp = arr[parentIndex];

    while (childIndex < arr.Length)
    {
        if (childIndex < arr.Length - 1 && arr[childIndex] > arr[childIndex + 1])
        {
            childIndex++;
        }

        if (temp > arr[childIndex])
        {
            arr[parentIndex] = arr[childIndex];
            parentIndex = childIndex;
            childIndex = parentIndex * 2 + 1;
        }
        else
        {
            break;
        }
    }

    arr[parentIndex] = temp;
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容