den Mac so hingestellt, das möglichst viel Wasser, falls noch welches drinne ist, raus fließt. 

Fehler 1: Durch Drehen verteilt man das Wasser noch.

Kurz danach habe ich versucht ihn wieder anzumachen, darauf hin ist der Startton gekommen und das weiße Apple-Zeichen

Fehler 2: Mindestens 24 hättest du das MacBook ruhen lassen müssen.

Ich würde ihn jetzt erst einmal 48 Stunden in Ruhe lassen (ausgeschaltet!!!). Vielleicht geht es dann wieder. Macs haben eine automatische Sicherung, wird Flüssigkeit erkannt, schalten sie sich aus, das muss nicht bedeutet, dass das Gerät defekt ist. Dann versuchst du es nochmal. Geht es dann auch nicht, lohnt sich eine Reparatur nicht.

...zur Antwort

Schauen wir uns den Code an:

InsertionSort:

Der InsertionSort funktioniert, indem er eine bereits vorsortierte Liste speichert und dann für alle weiteren Elemente prüft, wohin sie müssen. Nehmen wir die Zahlenreihe 2, 3, 1, 5, 4. Der InsertionSort nimmt das erste Element und macht daraus eine Liste, eine Liste der Länge eins mit dem Wert 2. Danach prüft er das nächste Element. Ist es grösser als das grösste Listenelement, wird es hinten an die Liste angestellt. Die Liste ist dann 2, 3. Ist es kleiner, was beim nächsten Element 1 der Fall sein wird, wird geprüft, wo das Element in die Liste muss. Die 1 muss vor die 3, die 1 muss vor die 2, dann besteht die Teilliste 1,2,3 und mit 5 und 4 wird abschliessend so verfahren.

Der Code dazu:

class InsertionSort {

    int[] doSorting(int[] array) {

        for(int i = 1; i < array.length; i++) {

            int k = array[i];
            int j = i - 1;

            while(j >= 0 && array[j] > k) {

                array[j + 1] = array[j];
                j--;
            }

            array[j + 1] = k;
        }

        return array;
    }
}

Was man sieht, ist dass der Insertion sort im zwei Position gespeichert hat, die momentan zu verarbeitende und die davor. Gleichzeitig ist der InsertionSort in der komfortablen Lage, dass er keine Sortierung vornehmen muss, wenn ein Element grösser ist als die Teilliste. Hast du 1,2,3 muss er die 5 nicht sortieren, er kann sie einfach hinten dranknallen. Der InsertionSort eignet sich deswegen besonders gut, wenn ein Array weitestgehend sortiert ist. Bei 1,2,4,5,6,7,8,3,9 muss beispielsweise nur die 3 manuell sortiert werden.

BubbleSort:

Der BubbleSort geht mehrfach durch die Liste und prüft dabei immer je zwei Elemente nebeneinander. Ist das hintere Element kleiner als das vordere, werden die Elemente vertauscht. Wir nehmen wieder das Array 2, 3, 1, 5, 4. Der BubbleSort prüft 2 und 3 - müssen nicht vertauscht werden. BubbleSort prüft 3 und 1, müssen vertauscht werden usw. Ist er einmal durch die Liste durch, beginnt er von vorne, allerdings kann er jeweils ein Element weniger durchgehen pro Durchlauf, denn durch diese Weise wird das grösste Element garantiert hinten angehängt. Du kannst es durchspielen mit dem obigen Array. Nach dem ersten Durchlauf ist die 5 garantiert zuhinterst. Nach dem zweiten Durchlauf sind 4, 5 gegeben usw.

Code:

class BubbleSort {

    int[] doSorting(int[] array) {

        for (int i = 1; i < array.length; i++) {

            for(int j = 0; j < array.length - i; j++) {

                if(array[j] > array[j + 1]) {

                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }

            }

        }

        return array;
    }
}

Genau wie der InsertionSort profitiert auch der BubbleSort von einer Vorsortierung. Diese muss allerdings anders aussehen. Vom Array 1,2,4,5,6,7,8,3,9 profitiert der BubbleSort nicht, es dauerst ewig, bis die drei an ihrem Platz ist. Er profitiert aber beispielsweise vom Array 2,1,4,3,6,5,7,8,9, wenn er hier einmal durchgeht und 2,1, 4,3 und 6,5 vertauscht, ist er durch.

QuickSort:

Der QuickSort funktioniert so, dass im Array ein Element als Teiler (Pivot) ausgesucht wird. Anhand dessen wird das Array dann geteilt, alles was kleiner oder gleich ist, kommt in das erste Unter-Array, alles, was grösser ist, kommt in das zweite Unter-Array. So verfährt man dann auch wiederum weiter, auch die Unter-Arrays werden wiederum durch einen Pivoten getrennt. Als Pivot kommen drei Werte in Betracht, der jeweils erste Eintrag des Arrays, der letzte Eintrag oder der Eintrag genau in der Mitte.

Nimmt man beispielsweise den ersten Eintrag, würde das Array 2, 3, 1, 5, 4 beispielsweise in 1 und 3, 5, 4 gespalten und das solange, bis eine weitere Aufspaltung nicht möglich ist (hier ein Bild, das nimmt jedoch den letzen Eintrag, nicht den ersten: https://www.geeksforgeeks.org/wp-content/uploads/gq/2014/01/QuickSort2.png

Mein Code nimmt den ersten Eintrag:

class QuickSort {

    int[] doSorting(int[] array, int start, int end){

        int partition = doPartitioning(array, start, end);

        if(partition - 1 > start) {

            doSorting(array, start, partition - 1);
        }

        if(partition + 1 < end) {

            doSorting(array, partition + 1, end);
        }

        return array;
    }

    private int doPartitioning(int [] array, int start, int end) {

        int p = array[start];

        for (int i = end; i > start; i--) {

            if (array[i] > p) {

                int temp = array[end];
                array[end] = array[i];
                array[i] = temp;
                end--;
            }
        }

        int temp = array[end];
        array[end] = p;
        array[start] = temp;

        return end;
    }
}

Der QuickSort ist, wie der Name schon sagt, sehr schnell. Allerdings nur dort, wo keine Vorsortierung besteht. Im Gegensatz zum InsertionSort und zum BubbleSort kann der QuickSort eine Vorsortierung nicht erkennen, er muss so oder so die voll Aufspaltung machen. Dort, wo also überhaupt keine Struktur im unsortierten Array erkennbar ist, ergibt sich der QuickSort als Lösung. Er hat den zusätzlichen Vorteil, dass er keinen zusätzlichen Speicher braucht, da die Auftrennung in die Unter-Arrays ausgehend vom Hauptarray errechnet werden kann.

SelectionSort:

Der SelectionSort arbeitet sehr simpel. Aus dem Start-Array hinaus sucht er den kleinsten Wert und wirft ihn an den Anfang (Position 0). Aus 2,3,1,5,4 wird 1,2,3,5,4 usw.

Code:

class SelectionSort {

    int[] doSorting(int[] array) {

        for (int i = 0; i < array.length - 1; i++) {

            int m = i;

            for (int j = i + 1; j < array.length; j++) {

                if (array[j] < array[m])
                    m = j;
            }

            int temp = array[m];
            array[m] = array[i];
            array[i] = temp;
        }

        return array;
    }
}

Der SelectionSort braucht keinen zusätzlichen Speicherplatz, genauso wenig wie der QuickSort. Der Vorteil am SelectionSort ist, dass er nie mehr Operationen machen muss als Array.length - 1. Denn wenn er bei jedem Durchlauf das kleinste Element ganz vorne hinlegt, sind am Ende alle Elemente der Reihe nach vorne und das grösste Element ist automatisch hinten (deswegen minus 1). Beim Array 5,4,3,2,1 würde daraus 1,5,4,3,2 => 1,2,5,4,3 => 1,2,3,5,4 => 1,2,3,4,5. Das ist vorteilhaft, wenn die Speicherbeschreibung eine kostenpflichtige Angelegenheit ist.

MergeSort:

Beim MergeSort wird das Array in Hälften aufgeteilt und am Ende wieder zusammengesetzt (Bild: https://www.geeksforgeeks.org/wp-content/uploads/Merge-Sort-Tutorial.png). Leider habe ich keinen Code hierzu. Der MergeSort braucht zusätzlichen Speicherplatz und ist deswegen bei Array schlechter geeignet als der QuickSort oder der SelectionSort. Vorteile bietet der MergeSort vor allem bei verlinkten Listen, da die referenzielle Verbindung durch die Spaltung keine speicheraufwändigen Änderungen durchlaufen muss.

...zur Antwort
Fedora

Ubuntu ist vom lobbyistischen Canonical herausgegeben, von APT - einem der schlechtesten Paket-Manager überhaupt (keine Abhängigkeiten, nicht alle Pakete verfügbar - und dem hässlichen UI ganz zu schweigen. Zuletzt die massive Fehleranfälligkeit, Bugs und Abstürze erreichen inzwischen Windows-Niveau. Darüber hinaus besteht in der aktuellen Version ein Bug, der es mir nicht erlaubt, das macOS-Tastaturlayout normal zu verwenden. Stattdessen muss ich auf das normale schweizerische Layout zurückgreifen.

Wenn ich Linux verwendet, will ich mich auch nicht als Windows XP-Nutzer vorkommen, also ist Mint auch raus. Darüber hinaus ist mir die Weiterentwicklung zu undurchsichtig, die machen, was sie wollen. Für den Geschäftseinsatz ist das ungeeignet.

Fedora hingegen hat mit DNF einen guten Paket-Manager, kommt in einer sehr minimalistischen Installation, verfügt über eine grossartig Virtualisierungstechnik, hat wenige Bugs und viele Ähnlichkeiten mit dem von unserem Unternehmen verwendeten RedHat. Auch Fedora selbst hat schon fast Enterprise-Standard. Die Entwicklung ist strukturiert und vorhersehbar, was für den professionellen Einsatz wichtig ist.

...zur Antwort

Das rentiert nicht mehr. Selbst wenn die betroffenen Bauteile ersetzt werden können, hast du keine Garantie, wie lange es noch hält.

Darüber hinaus wären die Reparaturkosten, wenn du es durch einen professionellen Anbietern machen lässt, auf jeden Fall höher als der Geräte-Wert.

Und um selbst zu reparieren, brauchst du Werkzeug und insbesondere Ersatzteile und zuletzt das nötige Know-how.

...zur Antwort

Also beim iPhone XS Max kann es sein, dass FaceID (Gesichtserkennung) sich erkennt und sofort entsperrt.

Beim iPhone 7 Plus wird möglicherweise dein Fingerabdruck erkannt, wenn du es per Druck auf den Home-Button aufweckst.

Prüfe ausserdem mal, ob überhaupt ein Pin-Code festgelegt ist.

...zur Antwort

Also wenn ich das richtig verstehe, sind die abgegebenen Ergebnisse ja so oder so falsch, oder? Und falsche Ergebnisse ergeben nunmal eine sechs, auch wenn nicht abgeschrieben wurde.

...zur Antwort

Geschäfte, die vor Ort - also nicht über Telefon oder Internet - abgeschlossen wurden, kannst du so ohne Weiteres nicht rückgängig machen.

Es gibt mehrere Möglichkeiten:

  1. Du hoffst auf Kulanz.
  2. Du kannst nachweisen, dass du grundlegend falsch beraten (sprich angelogen) wurdest.
  3. Du kannst nachweisen, dass er Helm Mängel hat, dann kannst du über die Gewährleistung/Garantie gehen.
...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.