桶排序常用于统计出现次数。以下是排序算法,桶中值b[i]即为i出现的次数。

#include<iostream>
#include<vector>
using namespace std;

void bucketsort(vector<int> &a) {
    int b[500]{ 0 };//b为空桶
    for (int i = 0; i < a.size(); i++) {
        b[a[i]]++;        //直接把值放到对应序号的桶里面,自然就完成了排序。
    }
    a.clear();
    for (int i = 0, j = 0; i < 500; i++) {//从b桶复制回a数组
        if (b[i] != 0) {
            int n = b[i];
            while (n--)a.push_back(i);
        }
    }
}
int main() {    //测试
    vector<int> a{100,100,20, 33, 25, 32, 99, 32, 86, 99, 25, 10, 20, 99, 10, 33, 86, 19, 33, 74, 99, 32};
    bucketsort(a);
    for (auto&e:a)cout << e << ' ';
    cout << endl;
}

排序专题——6.桶排序相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. php桶排序,PHP实现桶排序算法

    本篇讲解PHP实现桶排序算法. 简单意义上的桶排序: 桶排序的原理是先安排N+1个桶作为容器,若数据范围为N的话. 然后将测试数据(所需排序的数据)进行循环,放入对应的桶内.数据一定是在范围N内的. ...

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

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

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

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

最新文章

  1. 数组的有关属性和方法
  2. 注释很全的抽象工厂(没用简单工厂优化)
  3. Android上使用OpenGLES2.0显示YUV数据
  4. python 廖雪峰数据分析统计服_廖雪峰Python总结1
  5. Vue3项目 --- Mock.js模拟数据测试
  6. 1.8编程基础之多维数组 03 计算矩阵边缘元素之和 python
  7. web字体设置成平方字体_探索免费和开放的Web字体
  8. php log 行号 debug_backtrace,PHP debug_backtrace() 函数生成 backtrace(回溯跟踪)
  9. winform flash
  10. 模拟Post登陆带验证码的网站
  11. 股票量化学习——复权因子计算
  12. python允许无止境的循环_A-level Computer Science 计算机科学学习笔记/经验分享/教程 (12.6):PHP...
  13. win10无限重启_让迷你掌上电脑更具生产力,GPD安装 Win10+Ubuntu双系统
  14. 如何让一个PNG图片背景透明
  15. 大内高手—常见内存错误
  16. 原码/补码的加减运算and溢出判断
  17. 2022-6-13 全O(1)的数据结构,两数相加,无重复字符的最长子串,寻找两个正序数组的中位数,盛最多水的容器,......
  18. 联想thinkcentre微型计算机,联想ThinkCentre一体机_ThinkCentre台式机-ThinkPad官网
  19. Linux shell 交互式编程、TCL/TK 和 Expect 编译与安装、expect 编程
  20. Java工程师必备技能有哪些?

热门文章

  1. 乐视影业嬗变:从影业到物联网
  2. Android中设置显示文本,Android文本显示控件-TextView属性详解
  3. 博物馆展示沉浸式互动体验空间应用
  4. 广发证券java_【广发证券Java面试】广发证券java面试。-看准网
  5. linux-软件包管理及RPM包管理(rmp命令管理)
  6. 【独立站运营】提高客户体验的 7种有效方法
  7. 软件体系结构——4+1视图
  8. 又一里程碑!阿里首推Java技术成长笔记,业内评级“钻石级”
  9. Git 单个仓库使用单独(非全局)的用户名
  10. iphone小说类软件用UIPageViewController实现