voID CountingSort(vector<int> & a,vector<int> & b){ int k=*max_element(a.begin(),a.end()); k++; vector <int> c(k); for (int i=0;i<a.size();i++) c[a[i]]++; for (int i=1;i<k;i++) c[i]=c[i]+c[i-1]; for (int i=0;i<a.size();i++) { b[c[a[i]]-1]=a[i]; c[a[i]]--; }}
如何将其更改为适用于所有整数类型?
解决方法 首先计算最小值和最大值:int k_min=*max_element(a.begin(),a.end());int k_max=*min_element(a.begin(),a.end());int k = k_max - k_min + 1;
对以下代码应用一些更改,将[i]替换为[i] – k_min;其余的应该很容易.
总结以上是内存溢出为你收集整理的c – 使用计数按负值排序?全部内容,希望文章能够帮你解决c – 使用计数按负值排序?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)