zoukankan      html  css  js  c++  java
  • 多功能冒泡排序 函数指针

    #include <iostream>
    #include <iomanip>
    #include <cstdlib>
    using namespace std;
    
    void bubbleSort(int [],const int, bool(*)(int,int));
    void swap(int * const,int * const);
    bool ascending(int ,int);
    bool descending(int,int);
    void print_arr(int [],int);
    int main()
    {
        int arr[]={3,42,1,100,689,2,24,45,36,47};
        int len=sizeof(arr)/sizeof(*arr);
        int flag=0;
        cout << "原数组为:" << endl;
        print_arr(arr,len);
        cout<<"请选择排序方法,升序(1),降序(2):";
        cin>>flag;
        if(flag==1){
           bubbleSort(arr,len,ascending);
        }
        else if(flag==2){
           bubbleSort(arr,len,descending);
        }
        else cout<<"输入有误!"<<endl;
        print_arr(arr,len);
    
        cout<<"done"<<endl;
        system("pause");
        return 0;
    }
    void bubbleSort(int arr[],const int len, bool(*sort_fun)(int,int))
    {
        for(int i=0;i<len-1;++i){
            for(int j=0;j<len-1-i;++j){
                if(sort_fun(arr[j],arr[j+1]))
                    swap(arr[j],arr[j+1]);
            }
        }
    }
    bool ascending(int a,int b){
        return a>b;
    }
    bool descending(int a,int b){
        return a<b;
    }
    void swap(int * const a,int * const b){
        int t=*a;
        *a=*b;
        *b=t;
    }
    void print_arr(int arr[],int len ){
        for(int i=0;i<len;++i){
            cout<<setw(5)<<right<<arr[i];
        }
        cout<<endl;
    }
    
  • 相关阅读:
    AJPFX总结hashmap和hashtable的区别
    AJPFX分享JAVA修饰符详解
    AJPFX分享java排序之希尔排序
    Mysql框架---HMySql
    html/css实现聊天布局
    Java连接Mysql
    微信小程序九宫格布局
    Android设计模式——MVP
    iOS与H5交互(WKWbebView)
    iOS MJExtension的使用
  • 原文地址:https://www.cnblogs.com/wucg/p/2078955.html
Copyright © 2011-2022 走看看