The present packet scheduling algorithm gives cellular network operators greater flexibility in adjusting the way resources are allocated among interactive best-effort data users. Best effort data users with different radio link qualities may have different amounts of data delivered to them using the same amount of radio resource. In the context of link adaptation, this characteristic complicates the fairness issue in cellular environments and has a profound impact on the overall system performance. As a result, the present packet scheduling algorithm is capable of allocating radio resource dynamically, not only based on channel conditions, but also to achieve different performance trade-offs among users with different link qualities. According to the algorithm, channel quality is determined for each user, channel efficiency is calculated and the channel efficiency value is used as the primary factor in weighting the delivery of packets to (or from) a given user. In a packet schedule weighting equation, a value of exponent may be varied from negative to positive to give good (or bad) users better service. However, performance of users with bad channel qualities degrades the performance of good channel users in a disproportionate manner. It is shown that it is frequently preferable to favor users with good channel qualities.