c++::写一个通用的冒泡排序

来源:互联网 发布:python怎么发音 编辑:程序博客网 时间:2024/06/05 08:46

本程序利用模板和仿函数实现一个通用的冒泡排序,即可以灵活的实现从大到小的排序和从小到大的排序。话不多说,直接上代码:

#include<iostream>using namespace std;//从小到大template<typename T>class More{public:bool operator()(T left, T right){return left>right;}};//从大到小template<typename T>class Less{public:bool operator()(T left, T right){return left<right;}};template<typename T,class com>void Bubble(T a[],size_t size){for(size_t i = 0; i<size-1; i++){for(size_t j = 0; j<size-i-1; j++){if(com()(a[j],a[j+1])){std::swap(a[j],a[j+1]);}}}}void Test(){int a[5] = {1,3,2,0,5};Bubble<int,More<int>>(a,sizeof(a)/sizeof(a[0]));}int main(){Test();return 0;}


0 0
原创粉丝点击