Cloud computing offers a platform where virtual entities, such as virtual machines, containers, and pods, are hosted in a physical infrastructure. Such virtual entities request resources, such as CPU, memory, and GPU, among other constraints. The cloud placement engine, also referred to as the scheduler, needs to place, in real time, such virtual entities in the cloud. Typically, resource demand is heterogeneous and the mix varies over time. Therefore, the scheduler needs to change its placement policy dynamically in order to accommodate the change in the mixed demand, resulting in lower rejection probability. A novel, autonomic, Adaptive Bin Packing (ABP) algorithm which attempts to equalize measures of variability in the demand and the allocated resources in the cloud, without the need to set any configuration, is introduced. ABP is compared to simplistic, extreme packing policies (spread and pack) as well an optimized packing policy. Experimental results based on simulations are presented, and the behavior of ABP and its adaptability to the demand mix is demonstrated. Further, ABP performs close to the optimized policy, yet evolves to an extreme policy as the mix becomes homogeneous.