Hallo,
Ich wollte mal eben in devC++ einen Sortieralgorithmus schreiben, das ist nun schon ein paar Stunden her.
Erstmal zum Code:
Code:
#include <iostream.h>
using namespace std;
int i;
int middle (int b[]) //sucht den Mittelwert eines Feldes
{
int big=0;
int small=b[0];
int average=0;
for (i=0;i<sizeof(b);i++)
{
if (b[i]<small) small=b[i];
if (b[i]>big) big=b[i];
}
average=(big+small)/2;
return(average);
}
int mysort(int feld[])
{
int m;
int n=0;
int o;
int p;
if (sizeof(feld)>1)
{
//Mittelwert abholen und schauen wieviele Elemente kleiner als der
//Mittelwert sind (Anzahl=p)
m=middle(feld);
for (i=0;i<sizeof(feld);i++)
{
if (feld[i]<m) n++;
}
p=n;
o=sizeof(feld)-p; //Anzahl der Elemente die groesser als der
//Mittelwert sind
//ein Array für die kleinen und eins für die grossen
int small[p];
int big[o];
//die kleinen ins entsprechende Array kopieren
n=0;
for (i=0;i<sizeof(feld);i++)
{
if (feld[i]<m)
{
small[n]=feld[i];
n++;
}
}
//das gleiche für die grossen...
n=0;
for (i=0;i<sizeof(feld);i++)
{
if (feld[i]>=m)
{
big[n]=feld[i];
n++;
}
}
// ein Array für die kleinen sortierten Werte und eins für die
//grossen
int klein[p];
int gross[o];
klein=mysort(small);
gross=mysort(big);
//feld aus den beiden sortierten Array zusammensetzen
for (i=0;i<p;i++)
{
feld[i]=klein[i];
}
n=0;
for (i=(n+1);i<(sizeof(feld));i++)
{
feld[i]=gross[n];
n++;
}
}
return(feld);
}
int main() {
int a[9]={5,2,8,1,4,5,7,3,0};
int b[9];
b=mysort(a);
system("PAUSE");
return 0;
}
Abgesehen von dem wirklich grausamen Stil und der umständlichen Herandgehensweise (will gar nicht wissen wieviele Flops das kostet :P ) kompiliert das ganze Monster auch gar nicht erst .
main.cpp: In function `int mysort(int*)':
main.cpp:48: error: incompatible types in assignment of `int' to `int[((unsigned int)((int)p))]'
main.cpp:59: error: incompatible types in assignment of `int' to `int[((unsigned int)((int)o))]'
main.cpp:72: error: invalid conversion from `int*' to `int'
main.cpp: In function `int main()':
main.cpp:80: error: incompatible types in assignment of `int' to `int[9]'
Wäre über Hilfe sehr dankbar
Gruß Goldenflash
Lesezeichen