Cod sursa(job #2808395)

Utilizator gabriel10tm@gmail.comGabriel Marian [email protected] Data 24 noiembrie 2021 23:08:57
Problema Sortare prin comparare Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
#include <unordered_set>
#include <unordered_map>
#include <chrono>
#include <map>
typedef unsigned long long ull;
typedef long long ll;
typedef unsigned int uint;
#define endl '\n'
using namespace std;
#if 1	
#include <fstream>
ifstream fin("algsort.in");
ofstream fout("algsort.out");
#define cin fin
#define cout fout
#endif

int a[500000];
void _qsort(int* arr,int st, int dr)
{
	if (st < dr)
	{
		int k = (st + dr) / 2;
		swap(arr[st], arr[k]);
		int val = arr[st];
		int i = st + 1;
		int j = dr;
		while (i <= j)
		{
			while (i <= dr && arr[i] <= val)
				i++;
			while (j >= st && arr[j] > val)
				j--;
			if (i < j)
				swap(arr[i], arr[j]);
		}
		swap(arr[st], arr[j]);
		_qsort(arr, st, j - 1);
		_qsort(arr, j + 1, dr);
	}
}

int main()
{
	int n; cin >> n;
	for (int i = 0; i < n; i++)
		cin >> a[i];
	_qsort(a, 0, n - 1);
	for (int i = 0; i < n; i++)
		cout << a[i] << " ";
}