C++代码实现快速排序
2014-04-27 21:51
351 查看
#include <iostream> using namespace std; // quick sort //另外,如果数组是引用传递可以通过函数模板的实参推断来自动获得它长度 template<typename T,int N> void printArr(T (&arr) ) { 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 __cplusplus cout <<"c++" <<endl; #else cout <<"c " <<endl; #endif int 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
具体逻辑见上面的链接
相关文章推荐
- 快速排序的C++实现代码
- 快速排序的C++实现代码
- 【转】android截屏代码:C++实现
- C++实现的MD5加密算法代码
- C++实现大数乘法算法代码
- Fast Compressive Tracking(快速压缩跟踪)算法的C++代码实现
- [转载] 循环队列的定义、入队、出队等操作 C++代码实现
- 快速排序的递归和非递归实现 -----C++、JAVA代码实现
- strstr()函数c++代码实现实例及运行结果
- C#的锯齿数组以及C++实现代码
- 【减治法】插入排序及C++代码实现
- C++基础代码--20余种数据结构和算法的实现
- C++模板实现快速排序
- 【c++】用工厂模式实现计算器功能(附工厂模式代码)
- android NDK开发——Android.mk\Application.mk实现与C\C++代码编译
- 插入排序(正序、倒序)-c++代码实现及运行实例结果
- 数据结构队列C++代码实现
- windows下,c /c++实现磁盘扫描,结合配置文件,读取特定后缀文件目录代码
- 查找-c++代码实现及运行实例结果
- 平衡二叉搜索树(AVL树)的原理及实现源代码(有图文详解和C++、Java实现代码)