#include <iostream>
using namespace std;
void qsort(int s[], int l, int r)//l为基准值,一般取数组第一个值,r为数组长度-1
{
int i, j, x;
if (l < r)
{
i = l;
j = r;
x = s[i];
while (i < j)
{
while(i < j && s[j] > x) j--; /* 从右向左找第一个小于x的数 */
if(i < j) s[i++] = s[j];
while(i < j && s[i] < x) i++; /* 从左向右找第一个大于x的数 */
if(i < j) s[j--] = s[i];
}
s[i] = x;
qsort(s, l, i-1); /* 递归调用 */
qsort(s, i+1, r);
}
}
void main()
{
int s[5]={80,50,30,40,60};
for(int i=0;i<5;i++)
cout<<s[i]<<endl;
qsort(s,0,4);
for(int i=0;i<5;i++)
cout<<s[i]<<endl;
using namespace std;
void qsort(int s[], int l, int r)//l为基准值,一般取数组第一个值,r为数组长度-1
{
int i, j, x;
if (l < r)
{
i = l;
j = r;
x = s[i];
while (i < j)
{
while(i < j && s[j] > x) j--; /* 从右向左找第一个小于x的数 */
if(i < j) s[i++] = s[j];
while(i < j && s[i] < x) i++; /* 从左向右找第一个大于x的数 */
if(i < j) s[j--] = s[i];
}
s[i] = x;
qsort(s, l, i-1); /* 递归调用 */
qsort(s, i+1, r);
}
}
void main()
{
int s[5]={80,50,30,40,60};
for(int i=0;i<5;i++)
cout<<s[i]<<endl;
qsort(s,0,4);
for(int i=0;i<5;i++)
cout<<s[i]<<endl;
}