#include<iostream>
using namespace std;
template<class T>
void BubbleSort(T* s,int start,int end)
{
for(int j=start;j<=end;j++)
{
for(int k=start;k<end-start-j;k++)
{
if(s[k]>s[k+1])
{
int t=s[k+1];
s[k+1]=s[k];
s[k]=t;
}
}
}
}
template<class T>
void InsertSort(T* s,int start,int end)
{
for(int i=start+1;i<=end;i++)
{
int t=s[i];
for(int j=i-1;j>=start;j--)
{
if(s[j]<t) {s[j+1]=t;break;}
else
{
s[j+1]=s[j];
if(j==0) s[0]=t;
}
}
}
}
template<class T>
void SelectSort(T* s,int start,int end)
{
for(int i=start;i<=end;i++)
{
for(int j=i+1;j<=end;j++)
{
if(s[i]>s[j])
{
int t=s[i];
s[i]=s[j];
s[j]=t;
}
}
}
}
template<class T>
void QuickSort(T* s,int start,int end)
{
if(start>=end) return;
T key=s[start];
int low=start;
int high=end;
while(low<high)
{
while(s[low]<key) low++;
while(s[high]>key) high--;
if(s[low]>s[high])
{
int t=s[low];
s[low]=s[high];
s[high]=t;
}
else if(s[low]==s[high]) low++;//含相同成分
}
QuickSort(s,start,low-1);
QuickSort(s,low+1,end);
}
template<class T>
void ShellSort(T* s,int start,int end)
{
}
int main()
{
int a[]={1,4,7,5,8,9,2,0,3};
QuickSort(a,0,5);
cout<<'S';
for(int i=0;i<9;i++)
{
cout<<a[i];
}
cout<<'E';
return 0;
}