All pastes #414012 Raw Edit

Untitled

public text v1 · immutable
#414012 ·published 2007-03-28 20:25 UTC
rendered paste body
#include <cstdlib>
#include <iostream>
using namespace std;

int rozmiar = 10;

void qsort (int tab[], int l, int p)
{
int i=l;
int j=p;
int v = tab[(l+p)/2];
int temp;
while(i<j){
		while (tab[i]<v)
		i++;
		while(tab[j]>v)
		j--;
	if (i<=j)
	{
	temp = tab[j];
	tab[j]=tab[i];
	tab[i]=temp;
	i++;
	j--;
	}
		}	
if (l<j)
qsort(tab,l,j);
if(p>i)
qsort(tab,i,p);
}

void heap(int tab[],int i, int size)
{
int l=2*i+1;
int p=2*i+2;
int max=i;
if (l<size && tab[l]>tab[max])
	max = l;
if (p<size &&tab[p]>tab[max])
	max = p;
if(max !=i)
	{
	int tmp = tab[max];
	tab[max] = tab[i];
	tab[i] = tmp;
	heap(tab, max, size);
	}
}

void heapsort(int tab[])
{
int n = 10;
for(int i=n/2; i<=0; i--)
	{
	heap(tab,i,n);
	int tmp=n;
	
		for(int i=0; i>tmp; i++)
		{
		int tmp2 = tab[0];
		tab[0]=tab[n-1];
		heap(tab,0,n);
		n--;
		}

	}	
}

int main()
{
int maintaba[10] = {5,1,7,2,4,6,8,13,14,2};

heap(maintaba,1, rozmiar);
heapsort(maintaba);

// qsort(maintaba,0,rozmiar);
for(int i=0; i<rozmiar; i++)
{
cout<<maintaba[i]<<" ";
}
char d;
cin>>d;
  return EXIT_SUCCESS;
}