Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Sortering i csharp..

Skapad av Borttagen, 2011-06-03 23:43 i Webbutveckling & Programmering

1 296
8 inlägg
0 poäng
Dagus
Visningsbild
P 30 Hjälte 252 inlägg
0
nu är det så att jag försökt mej på att sortera en talföljd i csharp men den vill inte fungera... här är programkoden
Visa spoiler
static void sort(int[] data)
{
bool nsort = true;
for (int i = 0; i < data.Length - 1 && nsort; i++)
{
nsort = false;
for (int j = 0; j < data.Length; j++)
{
if (data[j]>data[j+1])
{
nsort = true;
int tmp = data[j + 1];
data[j + 1] = data[j];
data[j] = tmp;
}
}
}
}
static void Main(string[] args)
{
Console.Write("Mata mej med en talföljd ");
string mat = (Console.ReadLine());
int[] vector = new int[mat.Length];
for (int i = 0; i < vector.Length; i++)
{
vector[i] = mat[i] - 48;
}
sort(vector);
for (int j = 0; j < vector.Length; j++)
{
Console.Write(" " + vector[j] + " ");
}
}

// Frustrerad Programmerare :/

Tillägg av Dagus 2011-06-03 23:45

använder mej av algoritmen "bubble sort" om det hjälper

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

-------
Visningsbild
P 30 Linköping Hjälte 4 577 inlägg
0

Svar till Dagus [Gå till post]:
För att du sorterar bara den lokala variabeln data, det är bara en kopia av vector som du matar in och påverkar inte den

Jag hette tidigare Ziron

Dagus
Visningsbild
P 30 Hjälte 252 inlägg
Trådskapare
0

Svar till Ziron [Gå till post]:
va? förklara vad du menar..

phoenix91
Visningsbild
P 33 Handen Hjälte 764 inlägg
0

Svar till Dagus [Gå till post]:
Det han menar är att metoden sort tar en lista, och gör en kopia av den listan. Det är kopian som sorteras.

Om det är lika som t.ex. java och c++ så borde det skrivas så att du inte skickar med något till metoden sort, utan att den sorterar den icke lokala listan vector direkt.

Ingen status

-------
Visningsbild
P 30 Linköping Hjälte 4 577 inlägg
0
Svar till Dagus [Gå till post]:
När du skickar med vector till sort() som argument så skapas bara en kopia av vector inuti metoden sort(), kallad data av dig. Redigerar du "data" så redigerar du bara den lokala kopian, inte originalvariabeln "vector"

Detta skulle kunna lösas här genom att byta till static void sort(ref int[] data) och tillkalla den med sort(ref vector);
Detta skulle skicka med den riktiga variabeln "vector" istället för att bara skapa en lokal kopia

Eller så byter du till static int[] sort(int[] data), lägger till return data; i slutet av metoden och tillkallar den med vector = sort(vector);
Detta skulle göra att metoden sort() returnerar en sorterad array som du sedan kan byta ut "vector" mot



Tillägg av Ziron 2011-06-04 00:28

För övrigt är "data" ett hemskt variabelnamn, alla variabler innehåller data, man bör specifiera vad det är för data. "vector" passar inte heller i det här fallet, en vector är en punkt i ett koordinatsystem, inte en array av tal

Jag hette tidigare Ziron

Dagus
Visningsbild
P 30 Hjälte 252 inlägg
Trådskapare
0
Svar till Ziron [Gå till post]:
bra mycket bättre förklaring ty



phoenix91
Visningsbild
P 33 Handen Hjälte 764 inlägg
0

Svar till Ziron [Gå till post]:
En vektor är inte en punkt i ett koordinatsystem, det är en vektor.

Att han kallar det vektor är väl itne så konsigt, då det finns i bland annat java, och där kan man lagra just tal, finns kanske även i c#.

Ingen status

-------
Visningsbild
P 30 Linköping Hjälte 4 577 inlägg
0

Svar till phoenix91 [Gå till post]:
Men man lagrar inte tal på det här sättet med vektorer..

Jag hette tidigare Ziron


Forum » Datorer & IT » Webbutveckling & Programmering » Sortering i csharp..

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons