Code: Select all

`#include<process.h>`

#include<iostream>

#include<conio.h>

#include<stdlib.h>

int Partition(int low,int high,int arr[]);

void Quick_sort(int low,int high,int arr[]);

int main(){

using namespace std;

int *a,n,low,high,i;

cout<<"/**************************Quick Sort AlgorithmImplementation*****************/";

cout<<"Enter number of elements:";

cin>>n;

a=new int[n];

/* cout<<"enter the elements:

";

for(i=0;i<n;i++)

cin>>a;*/

for(i=0;i<n;i++)

a[i]=rand()%100;

cout<<"Initial Order of elements";

for(i=0;i<n;i++)

cout<<a[i]<<" ";

cout<<"";

high=n-1;

low=0;

Quick_sort(low,high,a);

cout<<"Final Array After Sorting:";

for(i=0;i<n;i++)

cout<<a[i]<<" ";

getch();

return 0;

}

/*Function for partitioning the array*/

int Partition(int low,int high,int arr[])

{ int i,high_vac,low_vac,pivot;

pivot=arr[low];

while(high>low)

{ high_vac=arr[high];

while(pivot<high_vac)

{

if(high<=low) break;

high--;

high_vac=arr[high];

}

arr[low]=high_vac;

low_vac=arr[low];

while(pivot>low_vac)

{

if(high<=low) break;

low++;

low_vac=arr[low];

}

arr[high]=low_vac;

}

arr[low]=pivot;

return low;

}

void Quick_sort(int low,int high,int arr[])

{

int Piv_index,i;

if(low<high)

{

Piv_index=Partition(low,high,arr);

Quick_sort(low,Piv_index-1,arr);

Quick_sort(Piv_index+1,high,arr);

}

}

First i tried it on a really slow computer, and it could only function up until 22 numbers to sort. More than 22 and it would get 100% stuck.

i thought "Hey, this computer is bs. I'll try a better one." But i did on a really powerful one and it only works with up to 18 numbers!

So, my question is...is there a problem with the code? I've checked and it seems to be standard Quicksort. If not, what is the problem with the computers?.

For reference, in the crappy computer i used a C++ compiler which i have no idea the name. Looks oldschool, with the blue screen and yellow letters.

In the second computer i used Dev C++.