The inner loop runs log(n) times, as we can consider the worst possible outcome of the if statement never being true, so k will increment by 1 and run till it reaches log(n).
The outer loop runs n / (0.1 * sqrt(n)) times,
simplifying that we get n * 10 / sqrt(n). ... (1)
Now consider very very large values of n, such as when n = 10^100million
When n = 10^100million, it will run
(10^100million * 10) / sqrt(10^100million) ... [From (1)]
10^100,000,001/sqrt(10^100million) ... [multiplying that 10 with 10^100mill]
(10^100,000,001)/10^10,000
= 10^99,990,001
The outer loop runs 10^99,990,001 times when n = 10^100 million.
By this result, it must always have an upper bound of O(n), i.e. it will never run more than O(n) times.
Hence, the time complexity is O(n. log(n))
Not sure if it's correct, kindly confirm.