Okay erstmal muss ich sagen, dass ich was meine kenntnisse betrifft wohl noch eher am anfang stehe. Ich bin momentan dabei algodat1 etwas auf dinge die ich so hobbymässig schreibe anzuwenden. (hätte vll auch ins algodat1 forum gepasst bin mir nicht ganz sicher dabei)
Im gleich am anfang wird von sortierverfahren gesprochen und dass diese ca 1/4 der "kommerziel benutzten rechenzeit" beanspruchen.
Somit gleich zur frage:
Wenn ich einen datensatz haben der laufend geändert wird, warum sollte ich diesen sortieren?
jedes neue element muss doch dann wieder an der richtigen stelle eingefügt werden und das braucht doch wohl mehr aufwand als ein benötigtes element über einen index zu suchen den ich in einen unsortierten datensatz schreibe
ob ich ein element jetzt über einen index suche der zusätzlich gespeichert wird oder die elemente sortiere und dann nach dem x-ten element suche und laufend alle daten sortiert halten muss (erscheint mir intuitiv die erste methode als schnellere) - hängt dass dann davon ab wie oft ich meinen datensatz lesen und schreiben muss? ab wann zahlt sich ein sortierverfahren aus? (also so abgeschätzt würde ich behaupten: sobald ich oft genug auf die daten zugreifen muss, dass ein immer wiederholtes suchen den prozess langsamer macht als die daten sortiert zu halten - dh wenn ich auf die daten um einiges öfters lese als schreibe)
und dann noch eine frage zu java: ist es effektiver einen vector oder ein array zu verwenden wenn ich ab und zu elemente aus dem array entfernen muss (im moment verwende ich ein array und setze einen typ-wert auf 0 wenn das element nicht betrachtet werden soll - wäre es da besser gleich einen vector zu benutzen?)