有序位的合并
#include <iostream>
#include <list>
using namespace std;
void merge(list<int>& List)
{
list<int>::iterator it1=List.begin();
list<int>::iterator it2=List.begin();
it2++;
for(;it2!=List.end();)
{
if(*it1<*it2)
{
list<int>::iterator it3=List.begin();
for(;it3!=it2;)
{
if(*it3>*it2)
{
it3++;
}
else
{
List.insert(it3++,*it2);
it2=List.erase(it2);
break;
}
}
}
else
{
it1++;
it2++;
}
}
}
int main()
{
list<int> l;
l.push_back(9);
l.push_back(1);
l.push_back(7);
l.push_back(2);
l.push_back(5);
l.push_back(3);
l.push_back(4);
l.push_back(6);
merge(l);
list<int>::iterator it=l.begin();
for(;it!=l.end();it++)
{
cout<<*it<<endl;
}
return 0;
}