Vergleich aller array-Elemente - C-Algorithmus

Ich habe eine matrix m * n und für jede Zeile, die ich brauche, um zu vergleichen, alle Elemente unter Ihnen.
Für jedes paar, die ich finde, werde ich eine Funktion aufrufen, die gehen, um einige Berechnungen auszuführen.

Beispiel:

my_array -> {1, 2, 3, 4, 5, ...}

I take 1 and I have: (1,2)(1,3)(1,4)(1,5)
I take 2 and I have: (2,1)(2,3)(2,4)(2,5)
and so on

Mit C schrieb ich dies:

for (i=0; i<array_length; i++) {
    for (k=0; k<array_length; k++) {
        if (i==k) continue;

           //Do something
        }
    }
}

Ich Frage mich, ob ich verwenden kann, ein Algorithmus mit geringerer Komplexität.

  • Ohne Kenntnis der konkreten Berechnungen, die Sie tun, es gibt keine Möglichkeit zu sagen, was optimiert werden kann.
  • So haben Sie wirklich eine matrix, oder sind Sie nur reden über Permutationen von kleinen natürlichen zahlen?
  • Es gibt n^2 Paare, so dass Sie nicht tun können besser als n^2...
InformationsquelleAutor user2219580 | 2013-03-28
Schreibe einen Kommentar