一种相当常用,而且经常考的题目 快速排序是对冒泡排序的改进,每次都分下段 下面是冒泡和快速的代码 void BubbleSort(int *arr,int nArrLen) { for (int i=nArrLen-1;i>=0;i--) { for (int j=0;j<nArrLen-1;j++) { if (arr[j]>arr[j+1]) { int nTmp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = nTmp; } } } } int Partion(int *arr,int nLow,int nHigh) { int nKey = arr[0]; //int nLow = 0,nHigh = nArrLen-1; while (nLow<nHigh) { while(nLow<nHigh && arr[nHigh]>=nKey) --nHigh; arr[nLow] = arr[nHigh]; while(nLow<nHigh && arr[nLow]<=nKey) ++nLow; arr[nHigh] = arr[nLow]; } arr[nLow] = nKey; return nLow; } void QuickSort(int *arr,int nLow,int nHigh) { if (nLow<nHigh) { int nPartPos = Partion(arr,nLow,nHigh); QuickSort(arr,nLow,nPartPos-1); QuickSort(arr,nPartPos+1,nHigh); } } 代码好像有点问题,不过我想了好几篇,也没有找出毛病