Task scheduling algorithms in cloud have come a long way, from simplistic algorithms like first come first serve, to bio-inspired & machine learning algorithms like Q-learning and genetic algorithms. The main objective of any task scheduling algorithm is to minimize the number of execution cycles needed to completely and effectively execute a given set of tasks. In this work, we present a comparison of different scheduling algorithms and their performance evaluation. The proposed research takes into consideration different nuances of cloud task scheduling, which include task length, task completion time, virtual machine configuration and task deadline. Moreover, the review also includes containers, which ensures that the scheduler works effectively on a container environment to improve efficiency of the cloud deployment. We propose different comparisons of the algorithms which are under different task conditions. In our analysis, we reviewed all the algorithms on different tasks and under different virtual machine (VM) configurations. As per the research, the machine learning based algorithms perform better in terms of overall task scheduling efficiency when compared with others.