快速排序

来源:互联网 发布:dnf机械爆炸优化补丁 编辑:程序博客网 时间:2024/04/30 01:30
void QuickSort(int a[],int st,int stp)//void QuckSort(int *st,int len)也可以写成这样 {    int mid;mid=prtition(a[],st,stp)//标记元素位置if(l<mid-1)QuickSort  (a[],mid+1,stp);//递归调用if(mid+1>r)QuickSort  (a[],mid+1,stp); }  void QuickSort(long a[]),long st,long stp)  {  long t,n,l,r  n=a[st];  l=st+1  r=stp;  for(;;)  {  for(;a[l]<=n&&l<=stp;l++)  //从右找,找到一个小于标记元素的数  for(;a[r]>=n&&r>=st;r--)//从左找一个大于标记元素的数  if(l>=r)break;//如果l在r右侧,则跳出  t=a[l];a[l]=a[r];a[r]=t //交换使小于标记元素的在左,大于标记元素的在右  }  a[st]=a[r]//取出右侧小于标记元素的数写入空缺  a[r]=n//空缺放入标记元素  if(r-st>1)QuickSort  ( a,st,stp-1);//递归调用  if(stp>1)QuickSort  (a,st+1,stp);  }

原创粉丝点击