eduardo_souza Posted September 8, 2009 at 04:58 PM Report Share #286104 Posted September 8, 2009 at 04:58 PM O que é hash table e como usá-la em c++? Link to comment Share on other sites More sharing options...
Baderous Posted September 8, 2009 at 05:54 PM Report Share #286114 Posted September 8, 2009 at 05:54 PM http://en.wikipedia.org/wiki/Hash_table Link to comment Share on other sites More sharing options...
zecapistolas Posted September 9, 2009 at 11:33 AM Report Share #286214 Posted September 9, 2009 at 11:33 AM As hashtables com uma boa função de hash para evitar colisões, etc, para mim são a melhor coisa que existe para guardar/pesquisar dados no meio de uma grande quantidade de informação.... cumps 🙂 Link to comment Share on other sites More sharing options...
Ferreira Posted September 9, 2009 at 12:22 PM Report Share #286221 Posted September 9, 2009 at 12:22 PM Excepto se precisares de manter os dados ordenados. 🙂 http://twitter.com/ferreira Link to comment Share on other sites More sharing options...
fnds Posted September 9, 2009 at 01:00 PM Report Share #286225 Posted September 9, 2009 at 01:00 PM Excepto se precisares de manter os dados ordenados. 🙂 Podes sempre adicionar um campo "índice" e quando precisares de eles ordenados ires buscar os dados pela forma normal. Link to comment Share on other sites More sharing options...
zecapistolas Posted September 9, 2009 at 09:45 PM Report Share #286285 Posted September 9, 2009 at 09:45 PM Podes sempre adicionar um campo "índice" e quando precisares de eles ordenados ires buscar os dados pela forma normal. Exacto.... Na altura que utilizei hash_tables utilizava como função de hash o id dos clientes (tratava-se de uma instituição bancária).... cumps 🙂 Link to comment Share on other sites More sharing options...
eduardo_souza Posted September 10, 2009 at 02:08 AM Author Report Share #286291 Posted September 10, 2009 at 02:08 AM Quando falei sobre a duvida de hash table, eu queria saber como usar e nao o que era. Não me interesso em saber o que, quero saber como usa isso. Link to comment Share on other sites More sharing options...
Guest id194 Posted September 10, 2009 at 02:27 AM Report Share #286292 Posted September 10, 2009 at 02:27 AM Com essa atitude não vais longe... E eu questiono-me, não te interessa saber o que é porque já tens conhecimento ou simplesmente não interessa? Porque se for a segunda, estás no mal caminho... Link to comment Share on other sites More sharing options...
pedrosorio Posted September 10, 2009 at 10:17 AM Report Share #286300 Posted September 10, 2009 at 10:17 AM Quando falei sobre a duvida de hash table, eu queria saber como usar e nao o que era. Não me interesso em saber o que, quero saber como usa essa m**** http://en.wikipedia.org/wiki/Hash_table#Uses Não respondo a dúvidas por mensagem. Link to comment Share on other sites More sharing options...
fnds Posted September 10, 2009 at 12:03 PM Report Share #286310 Posted September 10, 2009 at 12:03 PM Quando falei sobre a duvida de hash table, eu queria saber como usar e nao o que era. Não me interesso em saber o que, quero saber como usa essa m**** O que é hash table e como usá-la em c++? Bem eu sei que o meu português não é o melhor mas eu acho que "o que é hash table?" responde-se "hash table é". Recomendo-te moderação na linguagem "m****" não é apropriado para um forum deste. Link to comment Share on other sites More sharing options...
mogers Posted September 28, 2009 at 11:21 AM Report Share #288977 Posted September 28, 2009 at 11:21 AM Podes sempre adicionar um campo "índice" e quando precisares de eles ordenados ires buscar os dados pela forma normal. Explica melhor como é que consegues obter os dados ordenados de uma forma eficiente sff. Este "campo índice" parece-me muito vago. O que tinha pensado (e acho que se costuma usar) é uma árvore auxiliar com esta informação. "What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação. Link to comment Share on other sites More sharing options...
bruno1234 Posted September 28, 2009 at 07:06 PM Report Share #289055 Posted September 28, 2009 at 07:06 PM Existem umas colecções q ordem logo na inserção e são extremamente eficientes. No caso do C# tens por exemplo o SortedSet, em java tb há um set q faz isso. Em c++ não me lembro, mas pesquisa por Set em c++, pode ser q encontres alguma coisa. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
pedrotuga Posted September 28, 2009 at 08:18 PM Report Share #289072 Posted September 28, 2009 at 08:18 PM Uma hashtable é uma estrutura de dados, não é um propriamente uma peça de software. Uma implementação de uma hashtable que inclua coisas como índices numéricos e afins, deixa de ser uma hashtable para ser tambem outra coisa. Outra coisa que acho curiosa é que quando se fala nestes temas vem sempre o pessoal com a questão da performance e dos microsegundos que se podem poupar ou de algumas dezenas de bytes por se usar esta ou aquela estrutura de dados. Têm noção que em 95%+ dos casos, o que se ganha em termos de facilidade de implementação é ridiculamente mais significativo que esses milisegundos? Exemplo, se quiseres por exemplo manipular dados com índices literais, podes usar uma hashtable para tornares o código mais claro e mais facil. Exemplo $calorias[pera] = 40000; $calorias[chocolate] = 15000; $calorias[agua] = zero $alimento = 'chocolate' print "o alimento ".$alimento." tem ". $calorias[$alimeto] . "calorias."; acho que isto é bem mais claro do que andar com índices numéricos para trás e para a frente. Se é mais rápido, tenho que chamar ou o flash ou o super-homem e perguntar-lhes. Link to comment Share on other sites More sharing options...
mogers Posted September 30, 2009 at 12:49 PM Report Share #289310 Posted September 30, 2009 at 12:49 PM Existem umas colecções q ordem logo na inserção e são extremamente eficientes. No caso do C# tens por exemplo o SortedSet, em java tb há um set q faz isso. Em c++ não me lembro, mas pesquisa por Set em c++, pode ser q encontres alguma coisa. Em C++ existe a classe set da STL. É eficiente, mas pode não ser suficiente. Uma hash table é muito mais eficiente para inserções e pesquisas (e.g. para dicionários), mas, a meu ver, não para obter os elementos ordenados. Outra coisa que acho curiosa é que quando se fala nestes temas vem sempre o pessoal com a questão da performance e dos microsegundos que se podem poupar ou de algumas dezenas de bytes por se usar esta ou aquela estrutura de dados. Pedrotuga, isso depende sempre o tamanho do problema. Para problemas relativamente pequenos pode ser irrelevante usar uma ou outra coisa. Claro que se deve optar pelo mais simples possível. No entanto, considerando um dicionário, se tiveres 100.000 ou 1.000.000 palavras a diferença não é simplesmente de milisegundos e pode condicionar a tua aplicação. edit: já agora, aproveito para recordar um post de um empregado da google, onde disse que tava a procurar formas de melhorar um algoritmo de O(N log N) para O( N ). Desta forma, poupariam 1 mês!! de processamento 🙂 "What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação. Link to comment Share on other sites More sharing options...
pedrotuga Posted October 3, 2009 at 04:49 PM Report Share #289808 Posted October 3, 2009 at 04:49 PM Sim tudo bem, mas tipo, as hashtables são usadas em 99% dos casos por motivos de simplicidade de código como o que indiquei. Raríssimas são as vezes que questões de performance ditam a sua utilização. Eu uso hashtables diariament e não me lembro de uma vez que o tenha feito por motivos de performance. No entanto 90%+ das discussões são sobre a sua performance. É falhar o alvo. Keep it simple, not fancy. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now