Cod sursa(job #2984022)

Utilizator Alexco2003Codarcea Alexandru-Christian Alexco2003 Data 23 februarie 2023 13:38:43
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.17 kb
#include <iostream>
#include <fstream>

using namespace std;

int w[500001]= {};

void mergesort(int left, int right, int v[])
{
    int i,j,k=0;
    int mid=(left+right)/2;
    if (left==right)
        return;
    mergesort(left,mid,v);
    mergesort(mid+1,right,v);
    for (i=left,j=mid+1; i<=mid && j<=right;)
    {
        if (v[i]<v[j])
        {
            w[k]=v[i];
            i++;
        }
        else
        {
            w[k]=v[j];
            j++;
        }
        k++;
    }

    for (;i<=mid;i++)
        w[k]=v[i],k++;
        for (;j<=right;j++)
        w[k]=v[j],k++;

for (i=left;i<=right;i++)
    v[i]=w[i-left];

}








int main()
{
    ifstream f1 ("algsort.in");
    ofstream f2 ("algsort.out");
    int n,i,cnt=1;
    f1>>n;
    int v[n];
    for (i=0; i<n; i++)
        f1>>v[i];
mergesort(0,n-1,v);
    //*while (cnt!=0)
    //{
    //    cnt=0;
     //   for (i=0; i<n-1; i++)
      //      if (v[i]>v[i+1])
        //    {
          //      swap(v[i],v[i+1]);
            //    cnt++;
//
  //          }
    //}

    for (i=0; i<n; i++)
        f2<<v[i]<< " ";



    return 0;
}