(arr []int)
| 21 | } |
| 22 | |
| 23 | func CountingSort(arr []int) { |
| 24 | k := getK(arr) |
| 25 | array_of_counts := make([]int, k) |
| 26 | |
| 27 | for i:= 0; i < len(arr); i++ { |
| 28 | array_of_counts[arr[i]] += 1 |
| 29 | } |
| 30 | |
| 31 | for i, j := 0, 0; i < k; i++ { |
| 32 | for { |
| 33 | if array_of_counts[i] > 0 { |
| 34 | arr[j] = i |
| 35 | j += 1 |
| 36 | array_of_counts[i] -= 1 |
| 37 | continue |
| 38 | } |
| 39 | break |
| 40 | } |
| 41 | } |
| 42 | } |