Witam Państwa,
Mam pytanie odnośnie deklarowania funkcji; czy można deklarować funkcję tak:
void _scal(int l,int sr,int p)
zamiast tak:
void _scal(int tab[],int l,int sr,int p)
jeżeli tablica tab jest zmienną globalną?
Według mnie raczej tak, nauczyciel mówi, żeby pisać ten drugi sposób.
Tutaj cały kod programu:
#include<bits/stdc++.h>
using namespace std;
int tab[100000],pom[1000000];
void _scal(int l,int sr,int p){
int i1=l,i2=sr+1;
for(int i=l; i<=p; i++){
if(i1>sr or (i2<=p and tab[i2]<tab[i1]))
pom[i]=tab[i2++];
else
pom[i]=tab[i1++];
}
for(int i=l; i<=p; i++)
tab[i]=pom[i];
}
void _sort(int l,int p){
if(l==p)
return;
int sr=(p+l)/2;
_sort(l,sr);
_sort(sr+1,p);
_scal(l,sr,p);
}
int main(){
int n; cin>>n;
for(int i=0; i<n; i++)
cin>>tab[i];
_sort(0,n-1);
for(int i=0; i<n; i++)
cout<<tab[i]<<" ";
}