34 lines
645 B
C
34 lines
645 B
C
#include "sortierung.h"
|
|
|
|
void tausche(int *zahl1, int *zahl2)
|
|
{
|
|
int tmp = *zahl1;
|
|
*zahl1 = *zahl2;
|
|
*zahl2 = tmp;
|
|
}
|
|
|
|
unsigned int findeMaxIdx(int array[], unsigned int len)
|
|
{
|
|
unsigned int maxIdx = 0;
|
|
|
|
for(int i = 1; i < len; i++)
|
|
{
|
|
if(array[i] > array[maxIdx])
|
|
{
|
|
maxIdx = i;
|
|
}
|
|
}
|
|
|
|
return maxIdx;
|
|
}
|
|
|
|
void selectionsort(int array[], unsigned int len)
|
|
{
|
|
for(int unsortierteLaenge = len; unsortierteLaenge >= 2; unsortierteLaenge--)
|
|
{
|
|
unsigned int maxIdx = findeMaxIdx(array, unsortierteLaenge);
|
|
|
|
tausche(&array[maxIdx], &array[unsortierteLaenge-1]);
|
|
}
|
|
}
|