Cloud computing is Internet-based computing that share resources that are software and hardware resources on-demand from computers and other devices. The consumers request for available services according to their desired Quality of Service and they are charged on a pay-per-use basis. One of the most challenging problems in cloud computing is task scheduling to satisfy the Quality of service as well as minimizing the task execution time. Scheduling strategy is the key technology in cloud computing. This paper surveyed different types of scheduling algorithms and compare their various parameters. Traditional scheduling algorithms are not able to provide scheduling in the cloud environments. Therefore, new scheduling strategies are needed to overcome the problems between users and resources posed by network properties.