Run time error in sorting in linear time

#include
using namespace std;
void sortt(int arr[],int n)
{
int l=0;
int h=n-1;
int mid=0;
while(mid<=h)
{
if(arr[mid]==1)
{
mid++;
}
else if(arr[mid]==2)
{
swap(arr[mid],arr[h]);
h–;

}
else
{
swap(arr[mid],arr[l]);
l++;
mid++;
}

}
}

int main() {
int n;
int arr[1000];
cin>>n;
for(int i=0;i<n;i++)
{
cin>>arr[i];

}
sortt(arr,n);
for(int i=0;i<n;i++)
{
cout<<arr[i]<<endl;

}
return 0;
}

Plz send your code by saving on ide only