not realyl a contacts app but I use something called TakePone which has a dialpad where you start typing someones name and it searches your contacts as you type
so typing 7 (s) gives me
simon
sarah
sally
adding a 2 then gives
Sarah
Sally
once you click the name you can edit the contact, call any of the numbers, send a text or email, add to speed dial etc.
I would be lost without it as it makes calling so much easier than scrolling through 300 contacts to find the one I want to call