Forum » Programiranje » [C#] sortiranje priimkov po slovenski abecedi
[C#] sortiranje priimkov po slovenski abecedi
JoSmo ::
Pozdravljeni,
na faksu sem dobil nalogo, v kateri moram priimke razvrstit po slovenski (č, š, ž) abecedi. Nesmem uporabljat vgrajene sort metode/funkcije. Če kdo ve kak se to naredi, prosim za pomoč.
Lep pozdrav.
Tastro
na faksu sem dobil nalogo, v kateri moram priimke razvrstit po slovenski (č, š, ž) abecedi. Nesmem uporabljat vgrajene sort metode/funkcije. Če kdo ve kak se to naredi, prosim za pomoč.
Lep pozdrav.
Tastro
- spremenil: JoSmo ()
vorantz ::
string[] priimki = { "Čučnik", "čačnik", "Čašnik", "Antonovski", "Amtonovski", "Žiga", "Žaga", "Bojan"}; foreach (var p in priimki) { Console.WriteLine(p); } Console.WriteLine("----------------"); var sorted = priimki.OrderBy(x => x); foreach (var p in sorted) { Console.WriteLine(p); } Console.ReadKey();
Uporabiš orderby namesto sort :>
lebdim ::
gre za leksikografsko urejanje, ki ste ga gotovo jemali pri algoritmih in podatkovnih strukturah, če ne, pa malo pogooglaj ... se pravi, moraš v programu napisati kodo za leksikografsko urejanje.
@tastro,
tukaj imaš nekaj o leksikografskem sortiranju.
@tastro,
tukaj imaš nekaj o leksikografskem sortiranju.
Zgodovina sprememb…
- spremenil: lebdim ()
JoSmo ::
@lebdim tnx. bom si pogledal.
za 1x mi sortiranje po ANG dela... samo šumnike mi da na konec. :(
Tako zgleda moja trenutna koda:
s tem primerjam... potem pa se mam eno cisto enostavno bubble sort funkcijo.
za 1x mi sortiranje po ANG dela... samo šumnike mi da na konec. :(
Tako zgleda moja trenutna koda:
static bool Uredi(Stranka stranka1, Stranka stranka2) { bool prviJeManjši = false; int dolžinaKrajšegaPriimka; // zagotovi da nebo prvi priimek daljši od drugega if (stranka1.priimek.Length > stranka2.priimek.Length) { dolžinaKrajšegaPriimka = stranka2.priimek.Length; } else { dolžinaKrajšegaPriimka = stranka1.priimek.Length; } for (int i = 0; i < dolžinaKrajšeBesede; i++) { if ((char)stranka1.priimek[i] < (char)stranka2.priimek[i]) { prviJeManjši = true; break; } } return prviJeManjši; }
s tem primerjam... potem pa se mam eno cisto enostavno bubble sort funkcijo.
Zgodovina sprememb…
- spremenil: JoSmo ()
JoSmo ::
Mi je ratalo naret. Če koda zanima kak mi je ratalo:
Spodna funkcija vrne index pozicijo polja (array) za char (črko) v tej moji custom abecedi, ki vsebuje šumnike. Potem pa z drugo funkcijo primerjam indexa (poziciji) in tako zvem kateri char je večji. Za tem pa uporabim samo se eno simpl bubble sort funkcijo, da vse skupaj sortiram. Hvala vsem za pomoč!
Spodna funkcija vrne index pozicijo polja (array) za char (črko) v tej moji custom abecedi, ki vsebuje šumnike. Potem pa z drugo funkcijo primerjam indexa (poziciji) in tako zvem kateri char je večji. Za tem pa uporabim samo se eno simpl bubble sort funkcijo, da vse skupaj sortiram. Hvala vsem za pomoč!
static int Pozicija(char znak) { int pozicija = -1; string Abeceda = "ABCČDEFGHIJKLMNOPRSŠTUVZŽ"; for (int j = 0; j < Abeceda.Length; j++) { if (char.ToUpper(znak) == (char)Abeceda[j]) { pozicija = j; } } return pozicija; }
mihies ::
Uporabi tale konstrukt:
oziroma, če je trenutni CultureInfo že slovenski, potem:
V obeh primerih imaš možnost upoštevati male in velike črke.
Prečital,da ne smeš uporabiti vgrajene funkcije. Eh, bom vseeno pustil tukaj.
var sorted = priimki.OrderBy(s => s,StringComparer.Create(new CultureInfo("sl-SI"), false));
oziroma, če je trenutni CultureInfo že slovenski, potem:
var sorted = priimki.OrderBy(s => s,StringComparer.CurrentCulture);
V obeh primerih imaš možnost upoštevati male in velike črke.
Prečital,da ne smeš uporabiti vgrajene funkcije. Eh, bom vseeno pustil tukaj.
http://blog.rthand.com/
SLODUG - uporabniška skupina
https://www.facebook.com/groups/slodug/
SLODUG - uporabniška skupina
https://www.facebook.com/groups/slodug/
Zgodovina sprememb…
- spremenil: mihies ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C#] Sort za string (slovenska abeceda)Oddelek: Programiranje | 954 (763) | mihies |
» | [C#] DeserializacijaOddelek: Programiranje | 1853 (1456) | Cvenemir |
» | c sharp LinkedList - NalogaOddelek: Programiranje | 1841 (1792) | Msatir |
» | [C#] Kopiranje osebe iz seznama v drug seznamOddelek: Programiranje | 1482 (1343) | Presidente |
⊘ | [C#]polje znakovOddelek: Programiranje | 2360 (2188) | Ziga Dolhar |