Enige reeks data van dieselfde tipe kan as 'n lys voorgestel word. Lyste kan bestel en onbestel word. In laasgenoemde geval kan dit moeilik wees om met die data te werk, om die gewenste waarde te vind en toegang tot die elemente van die lys te kry. Die lys van stringveranderlikes word gewoonlik alfabeties gesorteer. Daar is baie sorteermetodes; in elke geval moet u die beste algoritme kies.
Instruksies
Stap 1
As u die beste sorteermetode kies, is daar twee dinge wat u moet oorweeg: die tyd wat die sorteerwerk neem en die hoeveelheid geheue wat benodig word vir hulpopberging. Sorteeralgoritmes wat nie ekstra geheue benodig nie, word 'in plek' genoem. Een van die maklikste om te implementeer is 'n stadige borrelsoort, wat elke paar items in die lys deursoek en plekke ruil, afhangende van die gewenste volgorde.
Stap 2
Daar is 'n vinniger sorteermetode deur die minimum of maksimum item in die lys te vind. As u alfabeties sorteer, moet u die maksimum element elke keer as u deur die lys gaan, dit is 'n string wat begin met die letter wat die naaste aan die begin van die alfabet is. Sodra dit gevind is, word die snaar met die heel eerste item in die lys met die eerste pas omgeruil. By nadere oorweging van die lys word die eerste plek uitgesluit, die volgende maksimum element gesoek, in die tweede plek geplaas, ens. Die kode van die sorteerprogram in C ++ volgens die metode om die maksimum element van die lys te vind: String Arr [20], cTemp; int N = 20, Max, Pos; vir (int i = 0; i <N- 1; i ++) {Max = Arr ; Pos = i; vir (int j = 0; j <N; j ++) {as (Arr [j] <Max) {Max = Arr [j]; Pos = j; } cTemp = Arr ; Arr = Arr [Pos]; Arr [Pos] = cTemp; }}
Stap 3
Die beste oplossing vir die bestel van stringdata in 'n lys is die invoegingsoort. Die essensie daarvan lê daarin dat daar elke keer deur die lys 'n geordende deel van die lys is van 'n sekere aantal elemente, en dus word die volgende element wat oorweeg word op 'n geskikte plek in die lys geplaas. C ++ - kode van die invoegsorteer-algoritme: String Arr [20], cTemp; int N = 20; vir (int i = 1, j = 0; i <N; i ++) {cTemp = Arr ; j = i - 1; terwyl (cTemp <Arr [j]) {Arr [j + 1] = Arr [j]; j--; as (j <0) breek; Arr [j + 1] = cTemp; }}