zad_1
#include <cstdlib>
#include <iostream>
using namespace std;
const int N=10;
int main ()
{
int pom, l, p, m, tab[N];
srand(time(0));
cout << "SORTOWANIE PRZEZ WSTAWIENIE POŁÓWKOWE \n";
cout << "Liczby przed sortowaniem \n";
for(int i=0; i<N; i++)
{
tab[i]=rand()%100;
}
for(int i=0; i<N; i++)
{
cout << tab[i] << "\t";
}
//ALGORYTM SORTOWANIA
for(int i=1; i<N; i++)
{
pom=tab[i];
l=0;
p=i-1;
while(l<=p)
{
m=(l+p)/2;
if(pom<tab[m])
p=m-1;
else
l=m+1;
}
for(int j=i-1;j>=l;j--)
tab[j+1]=tab[j];
tab[l]=pom;
}
cout << "\nPo sortowaniu \n";
for(int j=0; j<N; j++)
{
cout << tab[j] << "\t";
}
cout << "\n\n";
system("PAUSE");
return EXIT_SUCCESS;
}
Zad_2
#include <cstdlib>
#include <iostream>
using namespace std;
const int N=8;
int main ()
{
int h, pom, i, tab[N];
srand(time(0));
cout << "SORTOWANIE METODA SHELLA \n";
cout << "Liczby przed sortowaniem \n";
for(int i=0; i<N; i++)
{
tab[i]=rand()%100;
}
for(int i=0; i<N; i++)
{
cout << tab[i] << "\t";
}
cout<<"\n";
//ALGORYTM SORTOWANIA
/*for(h=1;h<N;h=3*h+1)
h/=9*/ //SPOSOB DLA DUZYCH n
h=N/2;
while(h)
{
for(int j=N-h-1;j>=0;j--)
{
pom=tab[j];
i=j+h;
while(i<N && pom>tab[i])
{
tab[i-h]=tab[i];
i+=h;
}
tab[i-h]=pom;
}
h=h/2;
}
cout << "\nPo sortowaniu \n";
for(int j=0; j<N; j++)
{
cout << tab[j] << "\t";
}
cout << "\n\n";
system("PAUSE");
return EXIT_SUCCESS;
}
Zad_4
int tab[N]={3,6,1,6,2,5,56, 3,-9, 2};
void quick(int lewy, int prawy)
{
int i,j,piwot;
i=(lewy+prawy)/2;
piwot=tab[i]; tab[i]=tab[prawy];
for(j=i=lewy;i<prawy;i++)
if(tab[i]<piwot)
{
swap(tab[i],tab[j]);
j++;
}
tab[prawy]=tab[j]; tab[j]=piwot;
if(lewy<j-1) quick(lewy, j-1);
if(j+1<prawy) quick(j+1, prawy);
}
int main (int argc, char *argv[])
{
quick(0, N-1);
//wypisanie tablicy