Alguem sabe como pode ser o algoritmo de um encurtador de URL

Estou com um desafio de montar um encurtador de url só para diversão, já pesquisei no google sobre o assunto mas nada encontrei, eu gostaria de ter uma ideia de como seria o algoritmo deles q consegue encurtar uma url enorme em apenas tres caracteres, como vcs acham que dever ser este algoritmo?

Agradeço qualquer dica q vier?

Não tem mistério no algoritmo. Você cria arranjos com repetição e associa cada um à uma URL.

Mas te digo, com 3 caracteres vc tem muito poucas possibilidades, pois, tomando como base o alfabeto e os algarismos indo-arábicos, vc teria:
26 letras do alfabeto
10 dígitos

Assim, com 3 caracteres, teria 36^3 = 46.656

Mas, por exemplo, se você colocar 6 caracteres, pode ter até 2.176.782.336 possibilidades.

Tente criar um algoritmo que sorteia um número dentre todas essas possibilidades, vê se ele já está ocupado e associa à url. Caso contrário, sorteie novamente até achar um livre.

[quote=joao210180]Estou com um desafio de montar um encurtador de url só para diversão, já pesquisei no google sobre o assunto mas nada encontrei, eu gostaria de ter uma ideia de como seria o algoritmo deles q consegue encurtar uma url enorme em apenas tres caracteres, como vcs acham que dever ser este algoritmo?

Agradeço qualquer dica q vier?[/quote]

Voce pode tomar como base uma função hash, como citado a cima depende da quantidade de letras para a url, com 3 ou 4 letras vc pode manter uma tabela sem problemas com todas as possibilidades e ir consumindo-as.
tenho um encurtador que vai na tentativa e erro mesmo http://urlbw.net/

[quote=ruivo]Não tem mistério no algoritmo. Você cria arranjos com repetição e associa cada um à uma URL.

Mas te digo, com 3 caracteres vc tem muito poucas possibilidades, pois, tomando como base o alfabeto e os algarismos indo-arábicos, vc teria:
26 letras do alfabeto
10 dígitos

Assim, com 3 caracteres, teria 36^3 = 46.656

Mas, por exemplo, se você colocar 6 caracteres, pode ter até 2.176.782.336 possibilidades.

Tente criar um algoritmo que sorteia um número dentre todas essas possibilidades, vê se ele já está ocupado e associa à url. Caso contrário, sorteie novamente até achar um livre.[/quote]

Obrigado pela sua resposta, mas eu sou meio burro e não consegui imaginar um algoritmo que faz este tipo de coisa, vc teria um exemplo para ajudar a iluminar a mente?

Obrigado e abraço!

[quote=heat][quote=joao210180]Estou com um desafio de montar um encurtador de url só para diversão, já pesquisei no google sobre o assunto mas nada encontrei, eu gostaria de ter uma ideia de como seria o algoritmo deles q consegue encurtar uma url enorme em apenas tres caracteres, como vcs acham que dever ser este algoritmo?

Agradeço qualquer dica q vier?[/quote]

Voce pode tomar como base uma função hash, como citado a cima depende da quantidade de letras para a url, com 3 ou 4 letras vc pode manter uma tabela sem problemas com todas as possibilidades e ir consumindo-as.
tenho um encurtador que vai na tentativa e erro mesmo http://urlbw.net/
[/quote]

Obrigado pela sua resposta, mas eu sou meio burro e não consegui imaginar um algoritmo que faz este tipo de coisa, vc teria um exemplo para ajudar a iluminar a mente?

Obrigado e abraço!