This paper presents a parallel sorting algorithm which sorts n elements in O(n/w + n log n/p) time using p(less-than-or-equal-to n) processors arranged in a 1-dimensional grid with w (less-than-or-equal-to n1-epsilon) buses for every fixed epsilon > 0. Furthermore, it is shown that n X p elements can be sorted in O(n/w + n log n/p) time on p x p (p less-than-or-equal-to n) processors arranged in a 2-dimensional grid with w(less-than-or-equal-to n1-epsilon) buses in each column and in each row. These algorithms are optimal because their time complexities are equal to the lower bounds.