Given a ring of size n and a set K of traffic demands, the ring loading problem with demand splitting (RLPW) is to determine a routing to minimize the maximum load on the edges. In the problem, a demand between two nodes can be split into two flows and then be routed along the ring in different directions. If the two flows obtained by splitting a demand are restricted to integers, this restricted version is called the ring loading problem with integer demand splitting (RLPWI). In this paper, efficient algorithms are proposed for the RLPW and the RLPWI. Both the proposed algorithms require O(| K|+ t s ) time, where t s is the time for sorting | K| nodes. If | K|⩾ n ε for some small constant ε>0, integer sort can be applied and thus t s = O(| K|); otherwise, t s = O(| K|log| K|). For real world applications, | K| is usually not smaller than n and thus our algorithms achieve linear time. The proposed algorithms improve the previous upper bounds from O(min{ n| K|, n 2}) for RLPW and from O( n| K|) for RLPWI.