美文网首页
基本排序算法

基本排序算法

作者: 简子逍 | 来源:发表于2019-07-11 00:08 被阅读0次

    选择排序

    void selectSort(int* A, int n){   //从小到大排序
        for(int i=0;i<n-1;i++)
            for(int j=i+1;j<n;j++){
                if(A[i] > A[j]){
                    int temp = A[i];
                    A[i] = A[j];
                    A[j] = temp;
                }
            }   
    }
    

    插入排序

    void insertSort(int* A, int n){  //从小到大排序
        for(int i=1;i<n;i++)
            for(int j=i;j>0;j--){
                if(A[j] < A[j-1]){
                    int temp = A[j];
                    A[j] = A[j-1];
                    A[j-1] = temp;
                }
            }
    }
    

    冒泡排序

    void bubbleSort(int* A, int n){  //从小到大排序
        for(int i=0;i<n-1;i++)
            for(int j=0;j<n-1-i;j++){
                if(A[j] > A[j+1]){
                    int temp = A[j];
                    A[j] = A[j+1];
                    A[j+1] = temp;
                }
            }
    }
    

    <algorithm> 中 sort 函数使用

    #include <iostream>
    #include <algorithm>
    #include <ctime> 
    using namespace std;
    
    const int num = 5;
    struct Data{
        int id;
        int seed;
    }datas[num];
    
    bool cmp(Data a, Data b){
        if(a.seed != b.seed) return a.seed > b.seed;
        else return a.id < b.id;
    }
    
    void display(Data* datas){
        for(int i=0;i<num;i++)
            cout<<"data"<<datas[i].id<<": "<<datas[i].seed<<endl;
            
        cout<<endl;
    }
    
    
    int main(int argc, char** argv) {
        
        srand((unsigned)time(0));
        
        for(int i=0;i<num;i++){
            datas[i].id = i+1;
            datas[i].seed = rand()%10;
        }
        
        display(datas);
        sort(datas, datas+num, cmp);
        display(datas);
        
        return 0;  
    }
    
    // 原始值输出
    data1: 5
    data2: 7
    data3: 2
    data4: 5
    data5: 6
    
    // 排序后输出
    data2: 7
    data5: 6
    data1: 5
    data4: 5
    data3: 2
    

    相关文章

      网友评论

          本文标题:基本排序算法

          本文链接:https://www.haomeiwen.com/subject/ynokkctx.html