- Forum grupy T2 I Roku EiT http://www.t2.pun.pl/index.php - Nasze Programy C++ http://www.t2.pun.pl/viewforum.php?id=13 - laborka 28.11.07 http://www.t2.pun.pl/viewtopic.php?id=37 |
Mateusz_Frąckowiak - 2007-11-29 16:39:13 |
wersja nie testowana - wszelkie wyszukiwanie błędów mile widziane ;) Kod:#include <iostream> using namespace std; /*********************************** Zliczanie jedynek *********************/ int zliczanie(int a) { int b,c,d,e,f; int mask1=1431655765, mask2=858993459, mask3=252645135,mask4=16711935,mask5=65535; b=(a & mask1)+((a & ~(mask1))>>1); c=(b & mask2)+((b & ~(mask2))>>2); d=(c & mask3)+((c & ~(mask3))>>4); e=(d & mask4)+((d & ~(mask4))>>8); f=(e & mask5)+((e & ~(mask5))>>16); return (f); } /**************************************************************************/ /************************** Sortowanie ze przez wstawianie ****************/ void sortowanie(int tab[]) { int il[10]; for (int i=0; i<10; i++) { il[i]=zliczanie(tab[i]); } for (int i=1; i<10; i++) { int q,w,k=1; q=il[i]; w=tab[i]; while (q<il[i-k]&&(i-k+1!=0)) { il[i-k+1]=il[i-k]; tab[i-k+1]=tab[i-k]; k++; } il[i-k+1]=q; tab[i-k+1]=w; } for (int i=0;i<10;i++) // drukowanie wyników { cout << tab[i] << " "; } } /****************************************************************************/ int main () { int tab[10]; for (int i=0;i<10;i++) { cout << "podaj liczbę nr " << i+1 << ": "; cin >> tab[i]; } sortowanie(tab); system ("pause"); } |