Cod sursa(job #2987833)

Utilizator theo_scrie_codGhinea Theodor theo_scrie_cod Data 2 martie 2023 22:06:48
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
// Online C++ compiler to run C++ program online
#include <bits/stdc++.h>
#include <fstream>
using namespace std;

int v[500003],n,arr[500003];
void quicksort(int left,int right){
if(left<right){
    int pivot = v[rand() % right-1 + left];
    int r=right;
    int l=left;
    int nr=0;
    for(int i = left;i<=right;i++){
        if(pivot<v[i])
            arr[r--]=v[i];
        else if(pivot!=v[i])
            arr[l++]=v[i];
        else 
            nr++;
    }
    int a = l;
    while(nr){
        arr[a]=pivot;
        a++;
       
        nr--;
    }

    for (int i=left;i<=right;i++)
        v[i]=arr[i];
    quicksort(left,l-1);
    quicksort(l+1,right);
}
    
    

}

int main() {
    ifstream f("algsort.in");
    ofstream o("algsort.out");
int i = 1;
f>> n;
for (i=1;i<=n;i++)
    f>> v[i];

quicksort(1,n);


for (i=1;i<=n;i++)
    o<< v[i] <<" ";
    return 0;
}