#include<cmath>
using namespace std;
void fileArray(int array[], int len){
for(int i=0;i<len;i++){
array[i]=rand()%100;
}
}
void printArray(int array[], int len){
for(int i=0;i<len;i++){
cout<<array[i]<<” “;
if((i+1)%10 == 0){
cout<<endl;
}
}
}
int partition(int array[], int low, int high){
int key=array[high];
int i=low-1;
for(int j=low;j<=high;j++){
if(array[j]<key){
i++;
int temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
int temp=array[i+1];
array[i+1]=array[high];
array[high]=temp;
return (i+1);
}
void quickSort(int array[], int low, int high){
if(low<high){
int mid=partition(array,low,high);
quickSort(array,low,mid-1);
quickSort(array,mid+1,high);
}
}
int findIthElement(int array[], int low, int high, int i){
if(low == high){
return array[low];
}
int mid=partition(array,low,high);
int num=mid-low+1;
if(i == num){
return array[mid];
}else if(i<num){
return findIthElement(array,low,mid-1,i);
}else{
return findIthElement(array,mid+1,high,i-num);
}
}
int main(){
const int size=1000;
int array[size];
fileArray(array,size);
printArray(array,size);
int i=3;
int ithElement=findIthElement(array,0,size-1,i);
quickSort(array,0,size-1);
printArray(array,size);
cout<<“The “<<i<<“th Element is:”<<ithElement<<endl;
return 0;
}