Yo no entiendo que es lo que quieres, pero respecto al ordenamiento lo mejor es utilizar el quicksort , el framework viene con soporte para hacer ordenamientos sobre matrices y de seguro que internamente usa el quicksort, puedes colocar los caracteres en un array de caracteres y simplemente utilizando el método Array.Sort dejaras el array ordenado. Esto es lo más recomendable sobre todo si usas altos volumenes de datos.