相关代码 |
|
void run(int *pData,int left,int right){ int i,j; int middle,iTemp; i=left; j=right; middle=pData[(left+right)/2]; //求中间值 do{ while((pData[i] i++; while((pData[j]>middle)&&(j>left))//从右扫描大于中值的数 j--;//找到了一对值 if(i iTemp=pData[i]; pData[i]=pData[j]; pData[j]=iTemp; i++; j--; } }while(i if(left run(pData,left,j); //当右边部分有值(right>i),递归右半边 if(right>i) run(pData,i,right); } void QuickSort(int *pData,int Count) { run(pData,0,Count-1); }
相关资源 |
|