Cod sursa(job #3178856)

Utilizator razviOKPopan Razvan Calin razviOK Data 2 decembrie 2023 16:45:45
Problema Sortare prin comparare Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <stdio.h>
#include <stdlib.h>

int Partition(int *arr,int low,int high){
    int aux,auxlow=low;
    int pivot=arr[low];
  while(low<=high){

      while(arr[low]<=pivot)
          low++;
      while(arr[high]>pivot)
          high--;

      if(low<high){
          aux=arr[low];
          arr[low]=arr[high];
          arr[high]=aux;
          low++;
          high--;
      }
      else break;
  }
  aux=arr[high];
  arr[high]=pivot;
  arr[auxlow]=aux;
  return high;
}
void QuickSort(int *arr,int low,int high){
  if(low<high){
      int p= Partition(arr,low,high);
      QuickSort(arr,low,p-1);
      QuickSort(arr,p+1,high);
  }
}
void HybridQuickSort(){

}
int main() {

    //Analysis();
   // Demo();
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    int n;
    scanf("%d",&n);
    int *arr=(int *)malloc(sizeof(int)*n);
    for(int i=0;i<n;i++)
        scanf("%d",&arr[i]);

    QuickSort(arr,0,n-1);
    for(int i=0;i<n;i++)
        printf("%d ",arr[i]);

    free(arr);
    //DemoQuickSort();
    return 0;
}