计数排序Java代码实现

Posted 一棵不完全的二叉树

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计数排序Java代码实现相关的知识,希望对你有一定的参考价值。

结论:由于计数排序不是基于比较的排序,所以时间复杂度可以突破O(nlgn);计数排序时间复杂度为O(n),额外空间复杂度为O(n);

Java实现代码如下:

 1 package com.cmbc.test1;
 2 
 3 public class CountSorting {
 4     
 5     public static void countSort(int[] arr){
 6         if(arr==null||arr.length<2){
 7             return;
 8         }
 9         int max = Integer.MIN_VALUE;
10         for(int i = 0 ;i<arr.length;i++){
11             max = Math.max(max, arr[i]);
12         }
13         int[] help = new int[max+1];
14         
15         for(int i = 0;i<arr.length;i++){
16             help[arr[i]]++;
17         }
18         
19         int i = 0;
20         for (int j = 0; j < help.length; j++) {
21             while (help[j]-- > 0) {
22                 arr[i++] = j;
23             }
24         }
25         
26     }
27     
28     public static void printArray(int[] arr) {
29         if (arr == null) {
30             return;
31         }
32         for (int i = 0; i < arr.length; i++) {
33             System.out.print(arr[i] + " ");
34         }
35         System.out.println();
36     }
37     
38     public static void main(String[] args) {
39         int[] arr = {1,7,3,9,2,0,3,6,9};
40         printArray(arr);
41         countSort(arr);
42         printArray(arr);
43     }
44     
45 
46 }

 

以上是关于计数排序Java代码实现的主要内容,如果未能解决你的问题,请参考以下文章

Java实现堆排序和计数排序

计数排序及其时间复杂度代码(C++实现)应用场景

7种基本排序算法的Java实现

华为OD机试真题Java实现字母计数真题+解题思路+代码(2022&2023)

数据结构之排序算法Java实现—— 基数排序法

买什么数据结构与算法,这里有:动态图解十大经典排序算法(含JAVA代码实现)