Cod sursa(job #1454237)

Utilizator numeutilizatorIon Gabriel numeutilizator Data 25 iunie 2015 21:10:15
Problema Sortare prin comparare Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.8 kb
#include <stdio.h>
#include <stdlib.h>

int ma;
void q_sort(int ls,int ld, int m[]){
    int pivot;
    pivot=m[(ls+ld)/2];
    int i,j;
    i=ls;
    j=ld;
    int t;
    int k;
    while(i<j){
        while(i<ld && m[i]<pivot) i++;
        while(j>ls && m[j]>pivot) j--;
        if(i<=j){
            t=m[i];
            m[i]=m[j];
            m[j]=t;
            i++;
            j--;
        }

    }
    if(ls<j) q_sort(ls,j,m);
    if(i<ld) q_sort(i,ld,m);
}

int main(){
    FILE *fin=fopen("algsort.in","r");
    FILE *fout=fopen("algsort.out","w");
    int m[500001];
    int i;
    int max;
    fscanf(fin,"%d",&max);
    for(i=0;i<max;i++)
      fscanf(fin,"%d",&m[i]);
    q_sort(0,max-1,m);

    for(i=0;i<max;i++)
        fprintf(fout,"%d ",m[i]);
    return 0;

}