IEnumerator TernarySearch()
    {
        var arr = ArrayManager.Array();
        int key = ArrayManager.SearchingNumber;

        int l = 0;
        int r = arr.Length;

        while (r >= l)
        {
            int mid1 = l + (r - l) / 3;
            int mid2 = r - (r - l) / 3;

            if (arr[mid1] == key)
            {
                ArrayManager.ChangeColorOfNumber(mid1, "yellow");
                break;
            }
            else if (arr[mid2] == key)
            {
                ArrayManager.ChangeColorOfNumber(mid2, "yellow");
                break;
            }

            if (key < arr[mid1])
            {
                r = mid1 - 1;
            }
            else if (key > arr[mid2])
            {
                l = mid2 + 1;
            }
            else
            {
                l = mid1 + 1;
                r = mid2 - 1;
            }

            if (!Master.Instant)
            {
                ArrayManager.ChangeColorOfTwoNumbers(mid1, mid2, "red");
                yield return(new WaitForSeconds(Master.StepLength));
            }
        }
    }