implemented shellSort