For example, in sorting the tight lower bound is N*log(N) where N is the size of the array
how about for searching in a sorted array? I think it’s log(N) but I’m not 100% sure.
also everything is based on comparisons, no any other external memory than the input array itself can be used
thanks in advance
The optimal solution for searching a simple sorted array is a Binary Search, which has time complexity O(log₂(N)). The worst case happens when the searched-for element is not in the array, and takes exactly ⌊log₂(N) + 1⌋ iterations. See Binary Search Performance.
I believe you can only talk about “tightness” when referring to the upper AND lower bounds of complexity. Lower bound (big Omega) is generally more difficult to compute, and often not as useful as upper bound (big O). Tight bound (big Theta) takes both upper and lower bounds into account.
Technically the lower bound is Ω(1), because you can find the searched-for element on the first comparison. See Is binary search theta log (n) or big O log(n) for further discussion of the time complexity of binary search.