第2章 排序 | 第10节 计数排序练习题
Posted 小河沟大河沟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第2章 排序 | 第10节 计数排序练习题相关的知识,希望对你有一定的参考价值。
对于一个int数组,请编写一个计数排序算法,对数组元素排序。
给定一个int数组A及数组的大小n,请返回排序后的数组。
测试样例:
[1,2,3,5,2,3],6
[1,2,2,3,3,5]
-
计数排序
class CountingSort { public: int* countingSort(int* A, int n) { // write code here int min=A[0],max=A[0]; for(int i=1;i<n;i++) { if(A[i]<min) min=A[i]; if(A[i]>max) max=A[i]; } int k=max-min+1; int* B=new int[k](); //初始化为0 for(int i=0;i<n;i++) B[A[i]-min]++; int idx=0; for(int i=min;i<=max;i++) for(int j=0;j<B[i-min];j++) A[idx++]=i; delete []B; return A; } };
对于一个int数组,请编写一个基数排序算法,对数组元素排序。
给定一个int数组A及数组的大小n,请返回排序后的数组。保证元素均小于等于2000。
测试样例:
[1,2,3,5,2,3],6
[1,2,2,3,3,5]
以上是关于第2章 排序 | 第10节 计数排序练习题的主要内容,如果未能解决你的问题,请参考以下文章