hola no habra alguna alma que se apiade de mi

pero ya estoy molido con esto de la paginación, mi problema es el siguiente, estoy tratando de hacer la siguiente paginación
12345678910(mostrar 10 mas) [mostrar(los 10 anteriores)] 11 12 13 14 15 16 17 18 19 20 [(mostrar 10 mas)] Ultima pagina
de tal manera que me muestre los 10 primeros registros y unos links para los 10 siguientes o los 10 anteriores, solo quiero el algoritmo para generar eso, alguien me ayuda