Przejdź do głównej zawartości

Sorting algor

BubbleSort


// BubbleSort
        System.out.println("BubbleSort");
        for (int i=0; i<data.length-1; i++){
            for (int j=0; j<data.length-1-i;j++){
                if (data[j] > data[j+1]) {
                    int temp = data[j];
                    data[j]= data[j+1];
                    //swap
                    data[j+1]=temp;
                }
            }
        }


  • mało efektywny z uwagi na podwójny loop
  • tylko do małych data sets
  • efektywność O(n^2)


SelectionSort


  • raczej wolny algorytm z uwagi na podwójny loop
  • małe data set
  • efektywność O(n^2)


System.out.println("SelectionSort");
        int i,j,minV,minI,temp=0;
        for(i=0; i<data.length;i++){
            minV = data[i];
            minI = i;
            for (j=i;j<data.length;j++){
                if(data[j]<minV){
                    minV=data[j];
                    minI=j;
                }
            }
//swap
            if(minV<data[i]){
                temp=data[i];
                data[i]=data[minI];
                data[minI]=temp;
            }
        }

Insertion sort:

  • przesuwa key do momentu spełnienia warunku z while
  • raczej wolny algorytm z uwagi na podwójny loop
  • małe data set
  • efektywność O(n^2)


        System.out.println("InsertionSort");
        long startTimeInsertSort = System.nanoTime();

        for (int k=1;k<data.length;k++){
            int key = data[k];
            int m = k-1;
            while (m>0&& key<data[m]){
                int temp2 = data[m];
                data[m]=data[m+1];
                data[m+1]=temp;
                m--;
            }
        }

Merge sort

  • metoda sortująca rekursywna metoda wywołuje samą siebie
  • efektywna dla duzych zbiorów


Komentarze

Popularne posty z tego bloga

Skrócony zapis if - instrukcja warunkowa java

Instrukcja warunkowa - warunek i rezultat. if (warunek) { jesli spełniony wykonań operacje i zwróć wynik; } warunek nie spełniony Możliwości skrócenia kodu instrukcji warunkowej if (i < 0) ? i-- : i++; Jeżeli i mniejsze od zera to i-- jezeli false to i++ if (i < 0) {     i--; } else {     i++; } Skrócony zapis instrukcji warunkowej else if (i < 0) ? i--;  inna_zmienna=4; : i++; if (i < 0) {     i--; } else {     i++;     inna_zmienna = 4; } Skrócony zapis if

String-1 > middleTwo

Given a string of even length, return a string made of the middle two chars, so the string "string" yields "ri". The string length will be at least 2. middleTwo("string") → "ri" middleTwo("code") → "od" middleTwo("Practice") → "ct" public String middleTwo ( String str ) { return str . substring (( str . length ()/ 2 - 1 ), str . length ()/ 2 + 1 ); }

String-1 > endsLy

Given a string, return true if it ends in "ly". endsLy("oddly") → true endsLy("y") → false endsLy("oddy") → false public boolean endsLy ( String str ) { if ( str . length ()< 2 ){ return false ; } if (( str . substring ( str . length ()- 2 , str . length ())). equals ( "ly" )){ return true ; } return false ; }