Add solution with hard coded array content.
This commit is contained in:
parent
d2bc927914
commit
7f6b5f2e93
@ -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;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user