Cod sursa(job #3133063)

Utilizator JohnnyFortaPascu Ioan JohnnyForta Data 25 mai 2023 01:09:53
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

void swap(int &a, int &b){
    int aux = a;
    a = b;
    b = aux;
}

void quickSort(int v[], int start, int end){
    if(start >= end){
        return;
    }
    int indPivot = end;
    int pivot = v[indPivot];
    int lastSmaller = start - 1, ind, aux;
    for(ind = start; ind <= end; ind++){
        if(v[ind] < pivot){
            lastSmaller++;
            swap(v[lastSmaller],v[ind]);
        }
    }
    // for(int i = 0; i < 8; i++){
    //     cout<<v[i]<<' ';
    // }
    // cout<<"   "<<pivot;
    // cin.get();
    swap(v[lastSmaller+1], v[end]);

    quickSort(v, start, ind - 2);
    quickSort(v, ind + 1, end);
}

int main(){
    ifstream in("algsort.in");
    ofstream out("algsort.out");
    int v[500000], n;
    in>>n;
    for(int i = 0; i < n; i++){
        in>>v[i];
    }
    quickSort(v, 0, n - 1);
    for(int i = 0; i < n; i++){
        out<<v[i]<<' ';
    }
    in.close();
}