There are many grid-based applications where a timely response to an important event is needed. Often such response can require a significant computation and possibly communication, and it can be very challenging to complete it within the time-frame the response is needed. At the same time, there could be application-specific flexibility in the computation that may be desired. We have been developing an autonomic middleware targeting this class of applications. In this paper, we consider the resource allocation problem for such adaptive applications, which comprise services with adaptable service parameters in heterogeneous grid environments. Our goal is to optimize a benefit function while meeting a time deadline. We define an efficiency value to reflect how effectively a particular service can be executed on a particular node. We have developed a greedy scheduling algorithm, which is based on prioritizing the services considering their impact on the benefit function, and choosing resources using the computed efficiency values. We have carefully evaluated our resource allocation approach using two applications from our target class, a volume rendering application and a Great Lake forecasting application. When compared to the resource allocation performed by an Optimal algorithm, which enumerates all mappings, the benefit achieved by our approach was an average of 87% and the average successrate was 90%. Furthermore, the benefit we obtained was 32% higher than that of the GrADS algorithm, an existing approach we compared our approach with.