C sharp - Ordenar palabras alfabeticamente empezando por una letra

 
Vista:
Imágen de perfil de pablo

Ordenar palabras alfabeticamente empezando por una letra

Publicado por pablo (1 intervención) el 03/12/2016 16:21:24
Hola,

Tengo un array de palabras ordenado alfabéticamente:

casa, manzana, puerta, vela, zapato

Ahora me piden que ordene esas palabras teniendo en cuentra que nuestro alfabeto ahora empieza por
la letra 'p'. Es decir, quedaría así:

puerta,vela, zapato,casa, manzana

No me permiten usar funciones predefinidas, ¿alguna idea? ¿alguien sabe cómo hacerlo? ando muy perdido.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Ordenar palabras alfabeticamente empezando por una letra

Publicado por arbol (25 intervenciones) el 03/12/2016 16:40:29
saludos

instala el anydesck y me envias el id

te apoyare en la codificacion

estamos en contacto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ordenar palabras alfabeticamente empezando por una letra

Publicado por Yordanis (4 intervenciones) el 14/12/2016 07:27:26
Hola partiendo de que dices que el arreglo dado ya está ordenado, según el alfabeto normal, una solución podría ser

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
static string[] Ordenar(string[] arrayViejoAlfabeto, string letraInicialNuevoAlf)
{
    string[] arrayNuevoAlfabeto = arrayViejoAlfabeto;
    string[] temp = new string[arrayViejoAlfabeto.Length];
    int posicion =0;
    foreach (string palabra in arrayViejoAlfabeto)
    {
        if (palabra.CompareTo(letraInicialNuevoAlf) >= 0 && posicion == 0)
            break;
 
        if(palabra.CompareTo(letraInicialNuevoAlf)>=0)
        {
            for(int i=posicion; i< arrayViejoAlfabeto.Length;i++)
            {
                temp[i - posicion] = arrayViejoAlfabeto[i];
            }
            for(int j= 0; j<posicion;j++)
            {
                temp[j + arrayViejoAlfabeto.Length - posicion] = arrayViejoAlfabeto[j];
            }
            arrayNuevoAlfabeto = temp;
            break;
        }
 
        posicion++;
    }
    return arrayNuevoAlfabeto;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar