https://www.kholoodtechnotes.net/2022/06/algorithms-performance.html