Algoritmo de classificação personalizada em Java?

luz:

Hey guys assim que eu quero escrever um pequeno programa em Java que me ajuda a resolver uma lista. Imagine a lista parece com isso: Maçãs, Grapefruit, bananas, abacaxis, Cocos

Agora eu não quero ordenar alfabeticamente ou qualquer coisa assim, mas por exemplo, por que fruta que eu mais gosto, então a lista ordenada poderia ser assim: Cocos, bananas, maçãs, abacaxi, toranja

A minha ideia até agora foi que ele poderia meio que ir assim: Maçãs está escrito na lista. Então toranja e maçã é comparada eo usuário diz que ele gosta mais (aqui Apples) para Toranja se mover sob Maçãs. Em seguida, ele compara Bananas com, por exemplo maçãs eo usuário diz ao programa que ele gosta Bananas mais por isso vai acima de maçãs e não tem que comparar com Grapefruit mais o que poupa muito tempo. O Programa deve lidar com algumas centenas de entradas e comparações, no final, assim economizando tempo por pedir menos perguntas vai economizar muito tempo. Estou no caminho certo? Também o que seria a melhor maneira de introduzir a lista, uma matriz, um ArrayList, ou ...?

Como isso deve ser implementado? Existe um encaixe algoritmo de classificação? Desde já, obrigado!

Andreas:

Você deve construir uma árvore binária de pesquisa.

Como você está inserindo novos frutos, você perguntar ao usuário que eles gostam mais, para encontrar o local para inserir o novo nó de frutas. Para manter o número de perguntas para baixo, manter a árvore balanceada.

Uma vez que a "preferência árvore" foi construído, você pode iterar a árvore em profundidade, a atribuição de "valores de preferência" incrementais para cada fruto, e construir uma Map<String, Integer>, então você pode rapidamente pesquisar quaisquer valores frutas de preferência, aka tipo número de seqüência.

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=282711&siteId=1
Recomendado
Clasificación