2026-06-18 12:51:33 +02:00

51 lines
1.0 KiB
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]);
}
}
void bubblesort(int array[], unsigned int anzahl)
{
int wurdeGetauscht = 1;
for(int i = anzahl-1; i >= 1 && wurdeGetauscht; i--)
{
wurdeGetauscht = 0;
for(int j = 0; j < i; j++)
{
if(array[j] > array[j+1])
{
tausche(&array[j], &array[j+1]);
wurdeGetauscht = 1;
}
}
}
}