Pagini recente » Cod sursa (job #1350471) | Cod sursa (job #2093860) | Cod sursa (job #2519778) | Cod sursa (job #1763458) | Cod sursa (job #2624716)
#include <bits/stdc++.h>
using namespace std;
// 1: numere aleatorii
// 2: numere aproape sortate
// 3: numere sortate invers
// 4: numere aleatorii dar multe perechi de numere identice
void swap(int*a, int* b)
{
int aux = *a;
*a = *b;
*b = aux;
}
int partitie(int arr[], int begin, int end)
{
int pivot = arr[end];
int i = begin-1;
for(int j = begin; j<=end-1;j++)
{
if(arr[j] < pivot)
{
i++;
swap(&arr[i],&arr[j]);
}
}
swap(&arr[i+1],&arr[end]);
return (i+1);
}
void quickSort(int myvect[], int begin, int end)
{
if ( begin < end )
{
int pi = partitie(myvect,begin,end);
quickSort(myvect, begin, pi - 1);
quickSort(myvect, pi +1, end);
}
}
int N;
ifstream f("algsort.in");
ofstream g("algsort.out");
int main()
{
f >> N;
int myvect[N];
for(int i=0;i<N;i++)
f >> myvect[i];
quickSort(myvect,0,N-1);
for(int i=0;i<N;i++)
g << myvect[i] << " ";
}