Hogyan összekapcsolni két tömböt?

szavazat
1

Én egy alapvető programozási osztály, és mindent elkövetnek pszeudo kódot.

A kérdésem a következő: Hogyan összekapcsolni két tömböt?

Van egy egydimenziós tömböt, amely felsorolja a diákok nevét, és van egy két dimenziós tömb, amely felsorolja a legjobb nyolc pontszámokat minden diák ... ez mind szép és jó, de most meg kell rendezni a tömböt a diákok név. Én dugta körül az interneten, és olvassa el a könyvet fejezet kétszer, csak röviden említi összekötő két tömböt, de nem mutat példát.

Ha ez segít, mi használ buborék-válogatás, és ez az, amit én meglehetősen ismerős ... tudom rendezni a neveket, hogy a könnyebbik része, de nem tudom, hogyan kell rendezni a fokozatok, így nem nem megy ki a sorrendben.

Köszönöm a bemenet!

Megjegyzést az: Megvan kitaláltam! Azt végül csinál, hogyan Greg Hewgill beszélt. Ahogy tettem be a megjegyzést ő javaslatára kezdtem véletlenszerűen dobott sornyi kódot, amíg ez a gondolat megütött ... nem nézel (egy modul cserélték a neveket, a másik, hogy a csere a fokozatok, és egy harmadik, még akkor cserélni a diákok egyéni fokozat korábban egy többdimenziós tömb), de valóban úgy tűnt, hogy a munka ... nem lehet kipróbálni, hogy egy nyelvet mint ahogy nincs fordítóprogram nem tettem elég a tudás, hogy a pszeudo-kód tényleges kódot, ha én is letölthető egy, de ez nagyon jól hangzik a papírra gépeltem azt ki!

Ahogy azt is említi a jegyzet, én köszönöm mindenkinek a gyors és hasznos betekintést, azt valójában nem is hiszem, hogy választ ma este, köszönöm mindenkinek újra minden segítséget!

Jeffrey

A kérdést 02/12/2008 09:03
a forrás felhasználó
Más nyelveken...                            


4 válasz

szavazat
0

A feltevést is rossz. Nem kellett volna a két tömb az első helyen.

Meg kell egy tömb tárgyak , amelyek mindegyike rendelkezik egy diák nevét és a pontszámok:

public class Record
{
    public string Student;
    public int[] Scores;
} 
Válaszolt 02/12/2008 09:08
a forrás felhasználó

szavazat
1

Amit érdemes csinálni a következő: Ahogy már válogatás a nevek, és meg kell cserélni a két pozíció, akkor a ugyanazon csereügylet a tömbben pontszámok. Ezzel a módszerrel minden változtatás, amelyet a nevek tömb tükröződni fog a pontszámok tömbben. Ha elkészült, a pontszámok lesz azonos sorba rendezett, mint a nevek.

Léteznek hatékonyabb módon teheti ezt más adatszerkezetek, mint a többi hozzászólás fog megjelenni.

Válaszolt 02/12/2008 09:12
a forrás felhasználó

szavazat
0

Két megközelítés: az első, amikor válogatás a nevek, akkor minden alkalommal cserélni két név, kicserélik a sorok (vagy oszlopok, vagy amit akarsz, hogy hívják őket), a pontszámok az azonos pozíciókban. A végén a pontszámokat kell még szinkronban a neveket.

Másodszor, válogatása helyett a nevek, hozzon létre egy harmadik tömb, amely tartalmazni fogja az indexek be sem a másik két tömböt, kezdetben 0-tól n-1, de majd rendezve, összehasonlítjuk neve [a], és nevet [b] válogatása helyett a nevek tömböt.

Válaszolt 02/12/2008 09:18
a forrás felhasználó

szavazat
2

Adjon meg egy egyszerű diák osztály, mint ez:

public class Student : IComparable<Student>
{
    public string Name { get; set; }
    public int[] Scores { get; set; }

    #region IComparable<Student> Members

    public int CompareTo(Student other)
    {
        // Assume Name cannot be null
        return this.Name.CompareTo(other.Name);
    }

    #endregion
}

akkor még egyszerűbb

    var students = new[] {
        new Student(){ Name = "B", Scores = new [] { 1,2,3 } },
        new Student(){ Name = "C", Scores = new [] { 3,4,5 } },
        new Student(){ Name = "A", Scores = new [] { 5,6,7 } }
    };

    Array.Sort(students);

ezt a munkát az Ön számára.

Válaszolt 02/12/2008 09:40
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more