A
adp4sure
Gast
Hi,
gegeben ist folgender Code:
Nun soll die Laufzeit dieser Methode exakt angegeben werden. Jeder Methodenaufruf hat dabei eine Laufzeit von 1 und das Bild ist n Pixel breit und hoch.
Mein Versuch, indem ich die Laufzeit immer reingeschrieben habe:
Somit komme ich auf T(n) = 13 + 4n + 7n²
Aber in der nächsten Teilaufgabe steht, falls man die Laufzeitanalyse nicht lösen konnte, so soll man von T(n)= 9 + 12n + 0,5n² ausgehen, was sich ja gar nicht meiner Analyse deckt.
Kann mir jemand helfen, wo ich falsch liege?
gegeben ist folgender Code:
Java:
public static int[] averageRGB(BufferedImage img) {
int[] averageRGBValues = new int[3];
int height = img.getHeight();
int width = img.getWidth();
int sumRed = 0;
int sumGreen = 0;
int sumBlue = 0;
for(int x = 0; x < width; x++) {
for(int y = 0; y < height; y++) {
int rgb = img.getRGB(x, y);
Color c = new Color(rgb);
sumRed = sumRed + c.getRed();
sumGreen = sumGreen + c.getGreen();
sumBlue = sumBlue + c.getBlue();
}
}
int pixels = height * width;
averageRGBValues[0] = sumRed / pixels;
averageRGBValues[1] = sumGreen / pixels;
averageRGBValues[2] = sumBlue / pixels;
return averageRGBValues;
}
Nun soll die Laufzeit dieser Methode exakt angegeben werden. Jeder Methodenaufruf hat dabei eine Laufzeit von 1 und das Bild ist n Pixel breit und hoch.
Mein Versuch, indem ich die Laufzeit immer reingeschrieben habe:
Java:
public static int[] averageRGB(BufferedImage img) {
int[] averageRGBValues = new int[3]; // 1
int height = img.getHeight(); //1
int width = img.getWidth(); //1
int sumRed = 0; //1
int sumGreen = 0; //1
int sumBlue = 0; //1
for(int x = 0; x < width; x++) { //1 1 n n
for(int y = 0; y < height; y++) { // 1 1 n n
int rgb = img.getRGB(x, y); // 1
Color c = new Color(rgb); // 1
sumRed = sumRed + c.getRed(); // 1
sumGreen = sumGreen + c.getGreen(); // 1
sumBlue = sumBlue + c.getBlue(); // 1
}
}
int pixels = height * width; //1
averageRGBValues[0] = sumRed / pixels; //1
averageRGBValues[1] = sumGreen / pixels; //1
averageRGBValues[2] = sumBlue / pixels; //1
return averageRGBValues; //1
}
Somit komme ich auf T(n) = 13 + 4n + 7n²
Aber in der nächsten Teilaufgabe steht, falls man die Laufzeitanalyse nicht lösen konnte, so soll man von T(n)= 9 + 12n + 0,5n² ausgehen, was sich ja gar nicht meiner Analyse deckt.
Kann mir jemand helfen, wo ich falsch liege?