快速排序

搞了N次都记不住!今天在这里写下。。。。但愿不要再忘记

 

#include "stdafx.h"
#include"stdio.h"
void main()
{
    void quickSort(int [],int,int);
    int a[7]=...{8,2,6,12,1,9,5};
    int i;
    quickSort(a,0,6);

    for(i=0;i<7;i++)
    printf("%4d",a[i]);
}
void quickSort(int a[],int left,int right)
{
   int i,j,temp;
   i=left;
   j=right;
   temp=a[left];
   if(left>right)
      return;
   while(i!=j)/**//*找到最终位置*/
   {
      while(a[j]>=temp && j>i)//从右往左
         j--;//遇到小于temp的数据时候就跳出
      if(j>i)
         a[i++]=a[j];//跳出后执行——赋值

      while(a[i]<=temp && j>i)//cong 左到右
          i++;                       //遇到大于temp得时候,从右边赋值

      if(j>i)
          a[j--]=a[i];
   }
   a[i]=temp;
   quickSort(a,left,i-1);/**//*递归左边*/
   quickSort(a,i+1,right);/**//*递归右边*/
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值