C++代码实现快速排序

来源:互联网 发布:javascript 书 编辑:程序博客网 时间:2024/06/06 01:09
#include <iostream>using namespace std;// quick sort  //另外,如果数组是引用传递可以通过函数模板的实参推断来自动获得它长度template<typename T,int N> void printArr(T (&arr)[N]){   int i = 0;     while(i<N)   {   cout << arr[i] <<" ";   i++;   }   cout <<endl;}void swap(int &p,int &q){int temp = p;p= q;q=temp;}int getIndex(int arr[],int nLow,int nHigh){int nTemp = arr[nHigh];int j = nLow - 1;for(int i=nLow;i<nHigh;i++){if ( arr[i] <= nTemp) {            j=j+1;swap(arr[j],arr[i]);}}swap(arr[j+1],arr[nHigh]);return j+1;}void quickSort(int arr[],int nLow,int nHigh){if (nLow < nHigh){int nIndex = getIndex(arr,nLow,nHigh);quickSort(arr,nLow,nIndex-1);quickSort(arr,nIndex + 1,nHigh);}}int main(){#ifdef __cpluspluscout <<"c++" <<endl;#elsecout <<"c " <<endl;#endifint arr[] = {52,49,80,36,14,75,58,56,57,78,42,22,22,44};    quickSort(arr,0,sizeof(arr)/sizeof(arr[0]));printArr(arr);return 0;}

http://www.cnblogs.com/pugang/archive/2012/06/27/2565093.html

具体逻辑见上面的链接

0 0
原创粉丝点击