2010-11-12 15 views
1

Folks,Recherche double triés pour les inégalités en .net

Compte tenu d'un ensemble de valeurs triées (peut-être dans une liste <T>, SortedList < T, K >, etc.), quelle est la meilleure façon de s'y prendre pour évaluer inégalités (plus-que, moins-que, plus-que-ou-égal-à, inférieur-ou-égal à une valeur donnée)? Possible avec l'un des types standards .net? Ou facilement codé? Tous les pointeurs sont grandement appréciés.

EDIT - bien sûr j'essaye de faire ceci aussi vite que possible. doit être très performant

+1

Cette question n'a pas de sens. – jason

+0

comment ça va? Je pense que c'est assez simple. J'ai une liste triée de doubles. Je veux trouver toutes les valeurs dans la liste qui sont supérieures à une valeur donnée, disons 10. Une façon de le faire est de parcourir toute la liste. mais c'est trié. donc je devrais être capable de faire plus vite. – SFun28

+0

pourquoi ne pas interroger la collection en utilisant linq? –

Répondre

2

Si vous voulez dire quelque chose comme le bon vieux lower_bound/upper_bound fonctionne sur C++ map<>, AFAIK il n'y a rien intégré dans C#.
Sur List<T>, une méthode BinarySearch est implémentée, mais elle ne fonctionne que pour la correspondance exacte.

Quoi qu'il en soit, vous pouvez facilement mettre en œuvre par vous-même, en utilisant le code peraphs dans cette question comme exemple:
Is there a Lower Bound function on a SortedList<K ,V>?

+0

Je pense que ça va marcher! Je répondrai une fois que j'ai implémenté. merci pour le pointeur !!! – SFun28

+0

a bien fonctionné. merci beaucoup pour le pointeur. – SFun28