Java Funktion()



  • hallo,

    ich brauch eine Funktion die, als Parameter eine int Feld bekommt
    z.b int V[7] ={1,2,1,3,2,4,5};

    die Funktion soll folgende Feld zurückgeben

    int A[5] ={ 1, 2,3,4,5}; es heisst die mehrmals vorhanden element sollen

    entfernt werden hat jemand eine Idee ???

    danke



  • Zwar etwas umständlich aber mit einem TreeSet dürfte das recht einfach gehen. Einfach alle WErte des Arrays als INteger hinzufügen und dann ausgeben lassen. (Die kommen dann automatisch sortiert und ohne doppelte Werte raus)
    Gut ist die Lösung zwar nicht, aber sie funktioniert.



  • Och ich find das gar nicht so schlecht.. aber es gibt noch ne schneller laufendere Methode:

    nimm dir ein BitSet mit der Größe des größten Wertes im Array minus dem kleinsten Wert. Geh dann das ganze Array durch und setze im Bitset jeweils ein Bit wenn der entsprechende Wert im Array vorkommt. Wenn du mit fertig bist, mach dir ein neues Array auf und sammel die Werte aus dem BitSet zusammen..

    ich hab grad mal zum Spaß beide Lösungen ausprobiert, die mit dem BitSet läuft ca. 10 mal so schnell(zumindest bei großen Arrays) 🙂



  • int sortarray(int [6]);

    int main(){
    > int array[6]={1,5,4,1,3,4};
    > sortarray(array);
    > cin.get();
    > return 0;
    }

    int sortarray(int array[6])
    {
    > int temp;
    > for(int where=0;where<=6;where+=1){
    > int counter=where;
    > for(;counter<=6;counter+=1){
    > if(array[where]>array[counter]){
    > temp=array[where];
    > array[where]=array[counter];
    > array[counter]=temp;
    > }
    > }
    > }
    > cout<<array[0]<<array[1]<<array[2]<<array[3]<<array[4]<<array[5];
    > return 0;}


Anmelden zum Antworten