https://gthaustralia.com/2023/09/06/algorithm-definition-types-facts/