Please explain the code below line by line in detail. The code is finished, I just need the explanation .Code in C++: #include #include #include using namespace std; void swap(int* a, int* b) { int t = *a; *a = *b; *b = t; } int partition(int arr[],int p,int r) { srand(time(0)); int pivot = rand()%(r-p); pivot += p; swap(arr[r],arr[pivot]); pivot = r; int temp = arr[r]; int i = p-1; for (int j = p; j < r ;j++) { if ( arr[j] < temp ) { i++; swap (arr[i],arr[j]); } } i++; swap (arr[r],arr[i]); return (i); } void quickSort(int arr[], int p, int r) { if (p < r) { int pivot = partition(arr, p, r); quickSort(arr, p, pivot - 1); quickSort(arr, pivot + 1, r); } } int main() { int arr[1000000]; int n; cin>>n; int i; for (i=0; i < n; i++) cin>>arr[i]; quickSort(arr, 0, n-1); for (i=0; i < n; i++) cout<
Please explain the code below line by line in detail. The code is finished, I just need the explanation .Code in C++:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
void swap(int* a, int* b)
{
int t = *a;
*a = *b;
*b = t;
}
int partition(int arr[],int p,int r)
{
srand(time(0));
int pivot = rand()%(r-p);
pivot += p;
swap(arr[r],arr[pivot]);
pivot = r;
int temp = arr[r];
int i = p-1;
for (int j = p; j < r ;j++) {
if ( arr[j] < temp ) {
i++;
swap (arr[i],arr[j]);
}
}
i++;
swap (arr[r],arr[i]);
return (i);
}
void quickSort(int arr[], int p, int r)
{
if (p < r)
{
int pivot = partition(arr, p, r);
quickSort(arr, p, pivot - 1);
quickSort(arr, pivot + 1, r);
}
}
int main()
{
int arr[1000000];
int n;
cin>>n;
int i;
for (i=0; i < n; i++)
cin>>arr[i];
quickSort(arr, 0, n-1);
for (i=0; i < n; i++)
cout<<arr[i]<<";";
return 0;
}
Step by step
Solved in 3 steps