当前位置:   article > 正文

计数排序,桶排序,基数排序_java 中offset是按照什么排序

java 中offset是按照什么排序

1.计数排序

核心:将输入的数据转化为健存储在额外开辟的数组空间中,输入的数据必须是确定范围的整数。

时间复杂度:O(N+M)

空间复杂度:O(N+M)

稳定性:稳定;

//:主要是针对数字进行排序,要是字符串就不是那么合适了;

公式:offset(偏移量)

offset = num - index; // : 先找到最大值和最小值,然后计算偏移量

index + offset = num;

num - offset = index;

// 总的来说就是创建一个数组,里面存放的是数字出现的次数;如图所示:

代码实现:

  1. public class CountSort {
  2. //计数排序
  3. public static void main(String[] args) {
  4. int[] arr = new int[10];
  5. Random random = new Random();
  6. for (int i = 0; i < arr.length - 1; i++){
  7. arr[i] = random.nextInt(50);
  8. }
  9. countSort(arr);
  10. System.out.println(Arrays.toString(arr));
  11. }
  12. private static void countSort(int[] arr) {
  13. //1.获取最大值和最小值
  14. int max = arr[0];
  15. int min = arr[0];
  16. for(int i = 1; i < arr.length; i++){
  17. if (arr[i] > max){
  18. max = arr[i];
  19. }
  20. if (arr[i] < min){
  21. min = arr[i];
  22. }
  23. }
  24. //2.创建辅助数组
  25. int[] temp = new int[max - min + 1];
  26. //计算偏移量
  27. int offset = min - 0;
  28. //3.遍历原数组,将数字的个数统计到新数组中
  29. for (int i = 0; i < arr.length; i++){
  30. temp[arr
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/794962
推荐阅读
相关标签
  

闽ICP备14008679号