c++模版实现快速排序
2011-04-26 22:59
387 查看
/*快速排序*/ /*quick_sort.h *使用第一个元素作为基准,左右交叉循环扫描 *假设数组有n个元素,则start = 0;end = n-1 */ #ifndef QUICK_SORTING_H #define QUICK_SORTING_H 1 template<typename T> void quickSort( T* m_array,int start,int end ) { int left=start; int right=end; T privotkey=m_array[ start ]; if( start<end ) { while( left<right ) { while( left<right && m_array[ right ]>privotkey ) //从右向左扫描 --right; m_array[ left ]=m_array[ right ]; //把小于privotkey的数移动到边 while( left<right && m_array[ left ]<=privotkey ) //从左向右扫描 ++left; m_array[ right ]=m_array[ left ]; //把大于privotkey的数移动到右边 } m_array[ left ]=privotkey; //此时有left==right quickSort( m_array,start,left-1 ); quickSort( m_array,left+1,end ); } } #endif
/*test.cpp*/ #include "quick_sort.h" #include <iostream> using std::cout; using std::cin; using std::endl; int main( ) { int a [ ]={2,4,8,3,1,10}; cout<<"before the sorting/n"; for( int i=0;i<6;++i ) cout<<a[ i ]<<" "; cout<<endl; quickSort<int>( a,0,5); cout<<"after the sorting/n"; for( int i=0;i<6;++i ) cout<<a[ i ]<<" "; cout<<endl; return 0; }
相关文章推荐
- 快速排序(C++模版技术实现)
- C++ 模版实现自定义释放类对象成员的堆内存空间
- 简单单向链表(C++模版技术实现)
- C++代码实现快速排序
- C++中调用库函数实现快速排序
- 模版函数指针,C++委托的实现
- C++实现快速排序(源代码)
- 模版函数指针,C++委托的实现-原创
- C/C++实现快速排序和随机快速排序
- c++ 模版函数的定义和实现放在一个文件中 .
- C/C++面试题:编程实现快速排序
- 简单链式二叉树(C++模版技术实现)
- C++函数模版实现
- C++ 快速排序的实现 左右同时开弓
- 快速排序的C++ 实现
- C++根据头文件自动生成实现文件框架(支持模版)
- C/C++实现快速排序
- 快速排序的几种C++实现
- 【C++数据结构】模版类实现双循环链表的基本操作
- C++快速排序实现