Cod sursa(job #2803561)

Utilizator christalknightChristian Micea christalknight Data 20 noiembrie 2021 10:58:04
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("algsort.in");
ofstream fout("algsort.out");

void quicksort(int high, int low, int sir[]);
void swap_eu(int a, int b, int *v);

int main(){
    int n, i;
    fin>>n;
    int sir[n];
    for(i = 0; i < n; i++)
        fin>>sir[i];
    quicksort(n - 1, 0, sir);
    for(i = 0; i < n; i++)
        fout<<sir[i];
    }

void quicksort(int high, int low, int sir[]){
    int pilon, i, j;
    pilon = sir[low];
    for(i = low, j = high; i < j;){
        do{
            i++;
        }while(pilon >= sir[i]);
        do{
            j--;
        }while(pilon < sir[j]);
        if(i < j)
            swap_eu(i, j, sir);
        }
    swap_eu(low, j, sir);
    if(high > low){
        quicksort(j, low, sir);
        quicksort(high, j + 1, sir);
        }
    }

void swap_eu(int a, int b, int *v){
    int c;
    c = v[a];
    v[a] = v[b];
    v[b] = c;
    }