求纠错:用STL容器vector和算法partition实现快速排序功能
自己的代码,但是运行不成功,找不到问题所在,还望高手指点迷津,晚生这厢有礼了···
#include<iostream>
#include<vector>
#include<algorithm>
#include<functional>
using namespace std;
typedef vector<int> VI;
typedef vector<int>::iterator VIT;
void qsort(VIT a,VIT b)
{
if(*a<*b)
{
VIT t=a;
t=partition(a,b,bind2nd(less<int>(),*t));
if(a<t-1)
qsort(a,t-1);
if(b>t+1)
qsort(t+1,b);
}
}
int main()
{
int a;
VI v_in;
VIT start,end,it;
start=v_in.begin();
end=v_in.end();
cout<<"Input 5 numbers:";
for(int i=0;i<5;i++)
{
cin>>a;
v_in.push_back(a);
}
qsort(start,end);
for(it=start;it!=end;it++)
{
cout<<*it<<' ';
}
cout<<endl;
return 0;
}
#include<iostream>
#include<vector>
#include<algorithm>
#include<functional>
using namespace std;
typedef vector<int> VI;
typedef vector<int>::iterator VIT;
void qsort(VIT a,VIT b)
{
if(*a<*b)
{
VIT t=a;
t=partition(a,b,bind2nd(less<int>(),*t));
if(a<t-1)
qsort(a,t-1);
if(b>t+1)
qsort(t+1,b);
}
}
int main()
{
int a;
VI v_in;
VIT start,end,it;
start=v_in.begin();
end=v_in.end();
cout<<"Input 5 numbers:";
for(int i=0;i<5;i++)
{
cin>>a;
v_in.push_back(a);
}
qsort(start,end);
for(it=start;it!=end;it++)
{
cout<<*it<<' ';
}
cout<<endl;
return 0;
}
...全文


