bucketSort 箱排序 也称桶排序

描述

属于分配排序,后面radix也是在此基础上得到的。

​ 将数组分到有限数量的bucket 中。

​ 简单的说,数的范围0-n,数组大小n+1

​ 一个for循环遍历,array[a[i]]++

代码实现

package distributionSort;public class bucketSort {public static int[] bucketSort(int[] array) {int max = array[0];for (int i : array) {max = i > max ? i : max;}int[] arr = new int[max + 1];for (int i : array)arr[i]++;return arr;}public static void main(String[] args) {int[] array = {2, 23, 3, 1, 3, 4, 5};int[] arr = bucketSort(array);int x = 0;for (int i : arr) {while (i-- > 0)System.out.println(x);x++;}}
}

转载于:https://www.cnblogs.com/EsMussSeinHui/p/11195198.html

# bucketSort 箱排序 也称桶排序相关推荐

  1. java 桶排序_[图解] 桶排序

    桶排序是一种排序的思想,其实现包括计数排序和基数排序两种,冒泡排序.选择排序.插入排序.归并排序.快速排序和堆排序都是基于比较的排序,而桶排序提出了一种新的思路,即基于数据状态的排序. 1. 桶排序的 ...

  2. 常用排序算法(八)桶排序

    桶排序 概要 本章介绍排序算法中的桶排序.内容包括: 1. 桶排序介绍 2. 桶排序图文说明 3. 桶排序实现 3.1  桶排序C实现 3.2  桶排序C++实现 3.3  桶排序Java实现 转载请 ...

  3. 排序算法:桶排序、计数排序、基数排序

    相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 这篇博客将主要介绍三种时间复杂度是 ...

  4. leetcode912. 排序数组 有范围的排序统统用桶排序

    给你一个整数数组 nums,请你将该数组升序排列. 示例 1: 输入:nums = [5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:nums = [5,1,1,2,0,0] 输出:[0 ...

  5. 排序算法之--桶排序(桶,像桶一样的排序,听起来很有趣哦0。0)

    排序算法之--桶排序 桶排序的工作的原理是将数组分到有限数量的桶子里,而这个有限数量是指多少个呢? 不急,容我细细道来:我们可以先求出这个数组的最大值和最小值,那么桶的数量就是max-min+1咯 为 ...

  6. c语言桶排序,排序算法之——桶排序

    这是本人的第一篇随笔,为的是分享学习经验,和大家讨论一些算法,以便取得些许进步,也是对学习的总结. 话不多说,下面我会用图文的方式向各位介绍桶排序. 1.主要思想: 桶排序的大体思路就是先将数组分到有 ...

  7. 排序算法_桶排序(箱排序)

    一.算法描述 假设有一组长度为N的待排关键字序列K[1....n]. 首先将这个序列划分成M个的子区间(桶). 然后基于某种映射函数 ,将待排序列的关键字k映射到第i个桶中(即桶数组B的下标 i) , ...

  8. 排序算法(7)----桶排序

    桶排序:  * 计数排序适合小范围的大量重复元素,而桶排序适合区间内尽可能随机的元素  * 它的思想是: * 把数据存在的区间划分为小的区间,就像桶一样,这些在一个桶中的数据在桶内排好序,再合并成排序 ...

  9. c语言链表桶排序,【排序】图解桶排序

    一.思想 一句话总结:划分多个范围相同的区间,每个子区间自排序,最后合并. 桶排序是计数排序的扩展版本,计数排序可以看成每个桶只存储相同元素,而桶排序每个桶存储一定范围的元素,通过映射函数,将待排序数 ...

  10. 桶排序c语言,桶排序(Bucket Sort)的数组实现

    桶排序的数组实现 桶排序Bucket Sort从1956年就开始被使用,该算法的基本思想是由E. J. Issac R. C. Singleton提出来. 桶排序(Bucket Sort)是迄今为止最 ...

最新文章

  1. 不同磁盘目录共享linux,linux下实现磁盘共享(mount)
  2. 编译:splint 遇到的问题: undefined reference to `yywrap'
  3. php讲一个正整数前补0,php 数字补零的两种的简单示例
  4. maven依赖c3p0_springboot 使用c3p0数据库连接池的方法
  5. 分享我用cnode社区api做微信小应用的入门过程
  6. 三菱PLC功能指令详解
  7. 新建的分支 has no tracked branch
  8. VBA-1-如何在右键中添加“新建启用宏的工作簿.xlsm”
  9. 华为奋力前行,以灵活多变的方式突围,成效显著
  10. Android Studio中Cannot resolve symbol XXX的解决方法
  11. ROS的几个重要概念:节点、消息、主题、服务
  12. 盘古开源:计算机信息安全中大数据技术的应用策略
  13. H5之外部浏览器访问微信客户端网页
  14. 绝对值不等式(贪心)
  15. 99SE元件封装、常用库、分立元件名称
  16. linux ssh端口是什么意思,SSH是什么?Linux如何修改SSH端口号?
  17. IntelliJ IDEA 的 WIN 和 Mac 快捷键大全 2021 最新版
  18. 国家科技型中小企业申报条件
  19. 因特网,互联网,以太网,局域网的区别
  20. 人群密度向:CMTL

热门文章

  1. EXPLAIN PLAN用法小议
  2. 懂数据分析,你将比同龄人晋升快多少?
  3. R文本分类之RTextTools
  4. php curl 超时 返回空,PHP curl 返回Connection timed out解决办法
  5. VMware vSphere学习之手动克隆虚拟机
  6. 面试还不知道BeanFactory和ApplicationContext的区别?
  7. Ops.CI/CD-持续交付概要笔记
  8. Unity 2D摄像机跟随角色移动
  9. 钉钉开发系列(一)access_token的获取
  10. urdf 学习笔记一