Anzeige:
Ergebnis 1 bis 2 von 2

Thema: C++ Programm beschleunigung

  1. #1
    Registrierter Benutzer
    Registriert seit
    12.08.2012
    Beiträge
    1

    Smile C++ Programm beschleunigung

    Hallo,
    ich bin neu hier und komme auch schon mit einem kleinen problem.
    ich haber ein programm geschrieben und das ausführen dauert ewig, beim profilen hab ich festgestellt das die folgende funktion einen großteil der rechenzeit in anspruch nimmt (die if abfrage)

    Code:
    void arraysortieren(int spalte)
    {
    	int i,j,kleinstearrayzeile; double buffer;
    	
    	for(i=0;i<gesamtzahl;i++)
    	{
    		kleinstearrayzeile=i;
    		for(j=i;j<gesamtzahl;j++)
    		{
    			if(input[j][spalte]<input[kleinstearrayzeile][spalte])
                                 kleinstearrayzeile=j;
    		}
    		
    		for(j=0;j<=3;j++)
    		{
    			buffer=input[i][j];
    			input[i][j]=input[kleinstearrayzeile][j];
    			input[kleinstearrayzeile][j]=buffer;
    		}
    	}
    }
    wie könnte ich den code den beschleunigen oder iwie verbessern? wäre für hilfen und tipps sehr dankbar

    viele grüße
    planck

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Ich denke das Problem dürfte hier sein, dass das ein Sortierverfahren mit der Komplexität O( n^2 ) ist, d.h. Lauzeit quadratisch mit der Anzahl der Elemente steigend.

    Siehe auch http://de.wikipedia.org/wiki/Sortierverfahren

    Es gibt keinen idealen Algorithmus, weil z.B. manche die gute Laufzeit haben zusätzlichen Speicher brauchen und das je nach Datenmenge auch schlecht sein kann.

    Ich kenne jetzt die Umstände nicht, aber vermutlich könntest du mit dem Mergesort Verfahren schnell zu einer Verbesserung kommen.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •