欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > java排序算法-计数排序

java排序算法-计数排序

2025/4/29 14:44:25 来源:https://blog.csdn.net/weixin_44546670/article/details/147518304  浏览:    关键词:java排序算法-计数排序

计数排序的思路

计数排序的基本思路:

  1. 确定取值范围: 遍历整个待排序的数组,确定数组中元素的取值范围,找到最小值和最大值。
  2. 创建计数数组: 创建一个计数数组,其长度为取值范围的大小,用于统计原始数组中每个元素出现的次数。
  3. 统计元素个数: 遍历原始数组,将每个元素出现的次数记录到计数数组中,计数数组的索引对应于元素的值。
  4. 累加计数数组: 对计数数组进行累加操作,每个位置的值等于其前面所有位置值之和。这一步的目的是确定每个元素在排序后的数组中的位置。
  5. 构建有序数组: 创建一个与原始数组等长的临时数组,遍历原始数组,根据累加计数数组确定每个元素在有序数组中的位置,同时更新计数数组中对应元素的计数。
  6. 得到排序结果: 此时,临时数组就是排序完成的结果。
public class Sort {//5.计数排序public static int[] countingSort(int... array){int max=array[0],i,j;for(i=1;i<array.length;i++){if(array[i]>max){max=array[i];}}//新建max+1的整数数组int[] tempArray = new int[max+1];for (i = 0; i < array.length; i++) {tempArray[array[i]]++;}for (i = 0,j=0; i < tempArray.length; i++) {for (int k = 0; k < tempArray[i]; k++) {array[j++]=i;}}return array;}public static void main(String[] args) {int[] a={52,1,0,49,70,62,81,17};System.out.println(Arrays.toString(countingSort(a)));}
}

结果展示 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词