zoukankan      html  css  js  c++  java
  • c++计数排序例子

    #include<iostream>
    #include<vector>
    using namespace std;
    //计数排序
    void CountSort(vector<int> &arr,int maxVal){
    int len = arr.size();
    if(len<1){
    return;
    }
    vector<int> count(maxVal+1,0);//辅助计数数组
    vector<int> tmp(arr);//辅助数组
    for(auto x : arr){//对每个数字出现了几次进行计数
    count[x]++;
    }
    for(int i=1;i<=maxVal;++i){//对于每个元素x,计算出比x小和它自己相等的元素的个数
    count[i]+=count[i-1];
    }
    for(int i=len-1;i>=0;--i){//将对应的值放到相对应数组下标的地方
    arr[count[tmp[i]]-1]=tmp[i];
    count[tmp[i]]--;
    }


    }


    int main(){

    vector<int> arr = { 1,5,3,7,6,2,8,9,4,3,3 };
    int maxVal=9;
    CountSort(arr,maxVal);
    for(auto x : arr){
    cout<<x<<" ";
    }

    cout<<endl;
    return 0;
    }

  • 相关阅读:
    用jquery实现手风琴效果
    网易轻博客特点
    用display做导航
    小结
    有序列表的显示
    水仙花
    相识多少天
    关于javascript中this的运用
    BFC
    八月第三周
  • 原文地址:https://www.cnblogs.com/xufeng123/p/12628683.html
Copyright © 2011-2022 走看看