主题:一个合并排序的算法用STL写的,不知道错在哪里??
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void mergesort(vector<int>& v1,int left,int right);
vector<int> vec(4);
vector<int>vec1(4);
int main()
{
vec[0]=1;vec[1]=7;vec[2]=4;vec[3]=5;
mergesort(vec,0,3);
for(int i=0;i<4;i++)
cout<<vec[i];
system("pause");
return 0;
}
void mergesort(vector<int>& v1,int left,int right)
{
if(left<right){
int i=(left+right)/2;
mergesort(v1,left,i);
mergesort(v1,i+1,right);
merge(v1.begin()+left,v1.begin()+i+1,v1.begin+i+1,
v1.begin+right+1,vec1.begin());
copy(vec1.begin(),vec1.end(),v1.begin());
}
}
#include<vector>
#include<algorithm>
using namespace std;
void mergesort(vector<int>& v1,int left,int right);
vector<int> vec(4);
vector<int>vec1(4);
int main()
{
vec[0]=1;vec[1]=7;vec[2]=4;vec[3]=5;
mergesort(vec,0,3);
for(int i=0;i<4;i++)
cout<<vec[i];
system("pause");
return 0;
}
void mergesort(vector<int>& v1,int left,int right)
{
if(left<right){
int i=(left+right)/2;
mergesort(v1,left,i);
mergesort(v1,i+1,right);
merge(v1.begin()+left,v1.begin()+i+1,v1.begin+i+1,
v1.begin+right+1,vec1.begin());
copy(vec1.begin(),vec1.end(),v1.begin());
}
}