public void sortirajPoNadmorskojVisini() // insertion, dobar za mali broj elemenata { for (int i = 1; i < putanja.Count; i++) { int j; Putanja temp = putanja[i]; for (j = i; j > 0 && temp.NadmorskaVisina < putanja[j - 1].NadmorskaVisina; j--) { putanja[j] = putanja[j - 1]; } putanja[j] = temp; } }
public void citajTxt(string path) { using (StreamReader sr = new StreamReader(new FileStream(path, FileMode.Open))) { nazivPlanine = sr.ReadLine(); nazivTackePodnozje = sr.ReadLine(); nazivTackeVrh = sr.ReadLine(); int brojPutanja = int.Parse(sr.ReadLine()); for (int i = 0; i < brojPutanja; i++) { Putanja toAdd = new Putanja(); toAdd.citajTxt(sr); putanjeNaPlanini.Add(toAdd); } } }
public Putanja najkracaPutanja() { Putanja najkraca = putanjeNaPlanini[0]; najkraca.sortirajPoNadmorskojVisini(); double najkraciPut = najkraca.DuzinaPutanje; for (int i = 1; i < putanjeNaPlanini.Count; i++) { putanjeNaPlanini[i].sortirajPoNadmorskojVisini(); if (putanjeNaPlanini[i].DuzinaPutanje < najkraciPut) { najkraciPut = putanjeNaPlanini[i].DuzinaPutanje; najkraca = putanjeNaPlanini[i]; } } return(najkraca); }