Ładny brzuch

Jaki jest najprostszy algorytm sortowania jaki moecie mi przedstawi w formie kodu rdowego ; > ?



najprostszy-bbelki :D , najszybszy-quicksort. koda niech kto inny walnie, bo ja nie mam go, a nie chce mi sie pisa od nowa :P

Najprostszy to sortowanie proste a nie bbelki:P

mniejwiecej polega to na tym, e przegldasz iletam razy tablice, i zamieniasz najmniejszy/najwiekszy element z pierwszym, potem drugim, trzecim, etc...

zoonoc: O(n^2)

Kod w C++:
//Inicjacja generatora liczb pseudolosowych srand(10); //Utworzenie tablicy int *arr = new int[100]; //wypenienie wartociami losowymi for(int i=0;i!=100;i++)arr[i]=rand()%100+1; bool zmiana=false; for(int i=0;i!=100;i++){    for(int j=i+1;j!=100;j++){          if(arr[i]>arr[j]){                  int tmp = arr[i];                  arr[i] = arr[j];                  arr[j] = tmp;                  zmiana = true;           }    }    if(!zmiana)break; }
:)

Jakbym komu czasem si chciao to niech sprawdzi to c wykodowaem ... czy jest to zgodne z algorytmem sortowania bbelkowego?


#include <iostream>

int main(void) {

int i =0;
int tablica[4];
while((tablica[i] = getchar()) != '\n') {
  i++;
}

for(i=0;i<4;i++) {

  std::cout << static_cast<char>(tablica[i]);

}

std::cout << std::endl;

int pomocnicza;

for(int j =0;j<4;j++) {
  int odejmowanie = 0;
for(i=0;i<3-odejmowanie;i++) {

  if(tablica[i] > tablica[i+1]) {
  pomocnicza = tablica[i];
  tablica[i] = tablica[i+1];
  tablica[i+1] = pomocnicza;
}
}
odejmowanie++;
}

for(i=0;i<4;i++) {

  std::cout << static_cast<char>(tablica[i]);

}

std::cout << std::endl;

return 0;
}


; )



No nie wiem... Mysle ze mozna by sie spierac czy babelkowe nie jest najprostsze. Nie chce mi sie podawac kodu (musialbym teraz pisac ;P ), krotko opisze:
sprawdzamy czy element nie jest wiekszy od tego ktory jest nad nim. jesli jest , to zamieniamy je miejscami... I tak do czasu kiedy w calej petli nie nastapi warunek
aktualny_element>element_wyzej

ja bym polecal jednak babelki...(ewentualnie przez wstawianie).

Komus sie jeszcze chcialo pisac ;)

no nie wiem... mysle, ze mozna by sie spierac, czy quicksort jest najszybszy ;) :P
wszystko zalezy od tego co sortujemy :] w niektorych przypadkach sa o wiele szybsze algorytmy sortujace.

Bble i scalaki:type tablica=array[1..100]of byte; Procedure BubbleSort(n:byte; var t:tablica); var i, j, tm:byte; begin for i:=1 to n-1 do    for j:=n downto i+1 do        if t[j]<t[j-1] then begin tm:=t[i]; t[i]:=t[j]; t[j]:=tm; end; end;type tablica=array[1..100]of byte; procedure Scal(p, s, k:byte; var t:tablica); var i,j,l:integer;     z:tablica; begin i:=p; j:=s; l:=p; while (i<s) and (j<=k) do begin  if t[i]<=t[j] then    begin z[l]:=t[i]; inc(i); end    else begin z[l]:=t[j]; inc(j); end;  inc(l); end; while i<s do  begin    z[l]:=t[i]; inc(l); inc(j);  end; while j <= k do  begin    z[l]:=t[j]; inc(l); inc(j);  end; for i:=p to k do t[i]:=z[i]; end; procedure ScalSort(p, k:byte; var t:tablica); var s:byte; begin if p<k then  begin    s:=(p+k) div 2;    scalSort(p,s,t);    scalSort(s+1,k,t);    scal(p,s+1,k,t);  end; end;

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •