Commit 583e283f authored by POORVI HEBBAR's avatar POORVI HEBBAR

update merge-sort to reflect API update

parent 40aaf02b
......@@ -3,49 +3,70 @@
#include "sorting.h"
using namespace std;
vector<int> merge(vector<int> arr1, vector<int> arr2){
int n1=arr1.size(), n2=arr2.size(),count1=0,count2=0;
vector<int> mergedArray(n1+n2);
for(int i=0;i<n1+n2;i++){
if(count1>=n1){
mergedArray[i]=arr2[count2];
count2++;
}
else if(count2>=n2){
mergedArray[i]=arr1[count1];
count1++;
}
else{
if(arr1[count1]<=arr2[count2]){
mergedArray[i]=arr1[count1];
count1++;
}
else{
mergedArray[i]=arr2[count2];
count2++;
}
}
}
return mergedArray;
int n1=arr1.size(), n2=arr2.size(),count1=0,count2=0;
vector<int> mergedArray(n1+n2);
for(int i=0;i<n1+n2;i++){
if(count1>=n1){
mergedArray[i]=arr2[count2];
count2++;
}
else if(count2>=n2){
mergedArray[i]=arr1[count1];
count1++;
}
else{
if(arr1[count1]<=arr2[count2]){
mergedArray[i]=arr1[count1];
count1++;
}
else{
mergedArray[i]=arr2[count2];
count2++;
}
}
}
return mergedArray;
}
vector<int> sort_custom(vector<int> arr){
int n=arr.size();
if(n==1){
return arr;
}
else
{
int n1=n/2;
int n2=n-n1;
vector<int> arr1(n1),arr2(n2);
for(int i=0;i<n;i++){
if(i<n1)
arr1[i]=arr[i];
else if(i<n1+n2)
arr2[i - n1]=arr[i];
}
vector<int> ans1=sort_custom(arr1);
vector<int> ans2=sort_custom(arr2);
vector<int> ans=merge(ans1,ans2);
return ans;
}
vector<int> mergeSort(vector<int> arr){
int n=arr.size();
if(n==1){
return arr;
}
else
{
int n1=n/2;
int n2=n-n1;
vector<int> arr1(n1),arr2(n2);
for(int i=0;i<n;i++){
if(i<n1)
arr1[i]=arr[i];
else if(i<n1+n2)
arr2[i - n1]=arr[i];
}
vector<int> ans1=mergeSort(arr1);
vector<int> ans2=mergeSort(arr2);
vector<int> ans=merge(ans1,ans2);
return ans;
}
}
vector<int> sort_custom(vector<int> arr,int startidx,int endidx){
int n=arr.size();
vector<int> subArr(endidx-startidx+1);
for(int i=startidx;i<=endidx;i++)
subArr[i-startidx]=arr[i];
vector<int> ans(n);
subArr=mergeSort(subArr);
for(int i=0;i<n;i++)
{
if(i>=startidx && i<=endidx)
{
ans[i]=subArr[i - startidx];
}
else
{
ans[i]=arr[i];
}
}
return ans;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment