Cod sursa(job #3030987)

Utilizator TirilaPatricTirila Patric-Gabriel TirilaPatric Data 18 martie 2023 10:26:54
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

void swap(vector<int>& V, int i, int j){
    int aux = V[i];
    V[i] = V[j];
    V[j] = aux;
}
int p(vector<int>& Vector, int left, int right){
    int pivot = Vector[right], j = left;
    for(int i=left; i<right; i++){
        if(Vector[i] <= pivot){
            swap(Vector, j, i);
            j+=1;
        }
    }
    swap(Vector, j, right);
    return j;
}
vector<int> sortare(vector<int>& Vector, int left, int right){
    if (left<right){
        int index = p(Vector, left, right);

        sortare(Vector, index+1, right);
        sortare(Vector, left, index-1);
    }
    return Vector;
}

int main(){
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    vector<int> V;
    int a, N;
    f>>N;
    while(N>0){
        f>>a;
        V.push_back(a);
        N--;
    }
    V = sortare(V, 0, V.size()-1);
    for(long unsigned int i=0; i<V.size(); i++){
        g<<V[i]<<" ";
    }
    return 0;
}