快速排序简要
 问题:将一个数组进行调整,a【0】左边都是比它小的数,a【0】的右边都是比他大的数。
 思想:
 简称挖坑排序法,学称快速排序法。
 i的初始位置在a【0】,j的初始位置在a【n-1】
 将a【0】取走,临时存放于一个x数种。
 j从后向前遍历,查找比a【0】小的数字,找到后将其值赋给a【i】,i向后移动一位,此时a【j】位置空出来了。
 i从前向后遍历,查找比a【0】大的数字,找到后将其赋给 a【j】,j向前移动一位,此时a【i】位置空出来了。
 重复循环上两个步骤,直到i=j为止。此时将x的值赋予a【i=j】;
 得到的新数组,a【i】的左边是小于它的数,右边的数是大于它的数。\\等于他的数不用管,所以排序不稳定。
 
 
 int FSOD(int *a,int s,int n)  
 {
 
x=a[s];
 
i=s;
 
j=n-1;
 
while(i<j)
 
{
 
while(a[j]>=x&&i<j)
 
j--;
 
 
 
 
 
   if(i<j)
 
{
 
a[i]=a[j];
 
i++;
 
   }
 
 
 
 
 
while(a[i]<=x&&i<j)
 
i++;
 
 
 
   if(i<j)
 
   {
 
   
 a[j]=a[i];
 
   
 j--;
 
}
 
 
 
 
 
 
 
}
 
 
a[i]=x;
 
 
return i;
 
  }
  
  
  ALLFSOD(int* a,int s,int n)
  {
  
 if(s<n)
  
 
  
 
  
 {
 
 
  
 i=fsod(a,s,n);
 
 
 
ALLFSOD(a,s,i-1;)  ;
  
 
  
 ALLFSOD(a,i+1,n)   ;
  
 
  
 
  }
  
 
  
 
  
 
  
 
  }