Add solution with hard coded array content.

This commit is contained in:
paulusja 2026-05-21 13:45:43 +02:00
parent d2bc927914
commit 7f6b5f2e93

View File

@ -34,9 +34,71 @@
#define MAX_ZAHLEN 100
void selectionsort(int array[], unsigned int len);
unsigned int findeMaxIdx(int array[], unsigned int len);
void tausche(int *elem1, int *elem2);
void zeigeArray(int array[], unsigned int len);
int main()
{
int zahlen[MAX_ZAHLEN] = {10, 5, 3, -1, 0, 2};
unsigned int len = sizeof(zahlen) / sizeof(zahlen[0]);
unsigned int benutzteLaenge = 6;
zeigeArray(zahlen, benutzteLaenge);
selectionsort(zahlen, benutzteLaenge);
zeigeArray(zahlen, benutzteLaenge);
return 0;
}
void zeigeArray(int array[], unsigned int len)
{
for(int i = 0; i < len; i++)
{
printf("%3d ", array[i]);
}
printf("\n");
}
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 tausche(int array[], unsigned int idx1, unsigned int idx2)
{
int tmp = array[idx1];
array[idx1] = array[idx2];
array[idx2] = tmp;
}*/
void tausche(int *elem1, int *elem2)
{
int tmp = *elem1;
*elem1 = *elem2;
*elem2 = tmp;
}