LEANER TIME SORTING ARRAY

Hi
Please help me on this i am trying to solve this probelm in leaner time … but the time limit is execeded.

#include
using namespace std;
int main() {
int N;
cin >> N;

int arr[N];
for (int i =0 ; i <N;i++)
{
	cin >> arr[i];
}

	int low, mid =0;
int high = N-1;
while (mid<=high)
{
	switch(arr[mid])
	{
		case 0:
			swap(arr[low+1],arr[mid+1]);
			break;
		case 1:
			mid++;
			break;
		case 2:
			swap(arr[mid],arr[high--]);
			break;

	}
}

for (int i = 0; i < N; i++)
cout << arr[i] << " ";

return 0;

}

please share your code through ide.codingblocks.com