Sunteți pe pagina 1din 1

#include <iostream>

#include <fstream>
#include <cstdlib>
/*
Fie un ir de numere ntregi de dimensiune n. S se sorteze elementele
irului n ordine cresctoare folosind metoda quicksort ns alegerea
pivotului x din intervalul p,q se va face aleator.
*/
using namespace std;
void QSort(int a[100], int p, int q)
{
ofstream g("out.txt");
int i,j,aux,x;
i=p;
j=q;
x=a[rand()%(q-p + 1) + p];
do {
while(a[i]<x)
{
i++;
}
while(x<a[j])
{
j--;
}
if(i<=j)
{
aux=a[i];
a[i] = a[j];
a[j]=aux;
i++;
j--;
}
}while(i<=j);
if(p<j)
QSort(a,p,j);
if(i<q)
QSort(a,i,q);
for(int p=0;p<=q;p++)
{
g<<a[p]<<" ";
}
}
int main()
{
int a[100],i,n,j;
ifstream f("in.txt");
f>>n;
for(i=0;i<n;i++)
{
f>>a[i];
}
QSort(a,0,n-1);
cout << "Hello world!" << endl;
return 0;
}

S-ar putea să vă placă și