Algorithms and Parallel VLSI Architectures