/*
Author:cavehubiao
Mail:cavehubiao@qq.com
MyBlog:http//www.cnblogs.com/cavehubiao
*/
#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
#include<vector>
#include<set>
#include<map>
#include<algorithm>
#include<cstring>
#include<queue>
#include<ctime>
using namespace std;
struct st
{
st* next;
int value;
st(int va,st* p=NULL):value(va),next(p){
}
};
void lqsort(st*left,st*right)
{
if(left!=right)
{
st* slow=left;
st* fast=left->next;
for(;fast!=right;fast=fast->next)
{
if(fast->value<=left->value)
{
slow=slow->next;
swap(slow->value,fast->value);
}
}
//slow=slow->next;
swap(slow->value,left->value);
lqsort(left,slow);
lqsort(slow->next,right);
}
}
int main()
{
srand((unsigned)time(NULL));
int len;
cin>>len;
st* List=NULL,*pre=NULL;
for(int i=0;i<len;i++)
{
st* pnode=new st(rand()%1000);
if(pre==NULL)
{
List=pnode;
pre=pnode;
}
else
{
pre->next=pnode;
pre=pnode;
}
}
lqsort(List,NULL);
for(int i=0;i<len;i++)
{
cout<<List->value<<' ';
st* tmp=List;
List=List->next;
delete tmp;
}
return 0;
}