In a multiuser system, the users can share the common channel using the OFDMA (Orthogonal Frequency Division Multiple Access) technique. In this scenario, the issue of allocating the shared channel resources (subcarrier and power) among the users is called the resource allocation problem. This problem, which is nonlinear due to its nature, also has a discrete structure. In this paper, a fast algorithm based on linear programming is proposed. The algorithm is composed of two phases. In the first one, the original integer programming problem is first linearized and then after relaxing the integer constraints a solution is obtained by the aid of the Simplex Algorithm. In the second phase, by exploiting the sub-carrier allocation obtained in first phase, bits are allocated to each user independently using the Greedy Algorithm. The simulation results have demonstrated that, the proposed algorithm can achieve a performance very close to that of the integer programming techniques while being significantly faster. Computational complexity analysis of the algorithm revealed that it can be implemented real-time on a standard microprocessor/DSP.