Suche Formel/Funktion zum Array Sortieren

Genau so. Ich habe es jetzt mal zusammengefummelt. Funktioniert, aber superumständlich, oder?! Geht auch nur innnerhalb von Quadraten ungerader Kantenlänge...

void Spiral2(int x,int y) {
 
 for(int d = 0; d < 5; d++) {  //Durchmesser

    //waagerecht unten)
    for(int i = x-d; i <= x+d; i++) {
       leds[XY(i,y-d)] = leds[XY(i+1,y-d)]; }

    //rechts
    for(int i = y-d; i <= y+d; i++) {
       leds[XY(x+d,i)] = leds[XY(x+d,i+1)]; } 

    //waagerecht oben)
    for(int i = x+d; i >= x-d; i--) {
       leds[XY(i,y+d)] = leds[XY(i-1,y+d)]; } 

     //links  
     for(int i = y+d; i >= y-d; i--) {
       leds[XY(x-d,i)] = leds[XY(x-d,i-1)]; }    
  }
}