排序专题——6.桶排序
桶排序常用于统计出现次数。以下是排序算法,桶中值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.桶排序相关推荐
- java 桶排序_[图解] 桶排序
桶排序是一种排序的思想,其实现包括计数排序和基数排序两种,冒泡排序.选择排序.插入排序.归并排序.快速排序和堆排序都是基于比较的排序,而桶排序提出了一种新的思路,即基于数据状态的排序. 1. 桶排序的 ...
- 排序算法:桶排序、计数排序、基数排序
相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 这篇博客将主要介绍三种时间复杂度是 ...
- leetcode912. 排序数组 有范围的排序统统用桶排序
给你一个整数数组 nums,请你将该数组升序排列. 示例 1: 输入:nums = [5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:nums = [5,1,1,2,0,0] 输出:[0 ...
- 排序算法之--桶排序(桶,像桶一样的排序,听起来很有趣哦0。0)
排序算法之--桶排序 桶排序的工作的原理是将数组分到有限数量的桶子里,而这个有限数量是指多少个呢? 不急,容我细细道来:我们可以先求出这个数组的最大值和最小值,那么桶的数量就是max-min+1咯 为 ...
- 常用排序算法(八)桶排序
桶排序 概要 本章介绍排序算法中的桶排序.内容包括: 1. 桶排序介绍 2. 桶排序图文说明 3. 桶排序实现 3.1 桶排序C实现 3.2 桶排序C++实现 3.3 桶排序Java实现 转载请 ...
- c语言桶排序,排序算法之——桶排序
这是本人的第一篇随笔,为的是分享学习经验,和大家讨论一些算法,以便取得些许进步,也是对学习的总结. 话不多说,下面我会用图文的方式向各位介绍桶排序. 1.主要思想: 桶排序的大体思路就是先将数组分到有 ...
- php桶排序,PHP实现桶排序算法
本篇讲解PHP实现桶排序算法. 简单意义上的桶排序: 桶排序的原理是先安排N+1个桶作为容器,若数据范围为N的话. 然后将测试数据(所需排序的数据)进行循环,放入对应的桶内.数据一定是在范围N内的. ...
- 排序算法_桶排序(箱排序)
一.算法描述 假设有一组长度为N的待排关键字序列K[1....n]. 首先将这个序列划分成M个的子区间(桶). 然后基于某种映射函数 ,将待排序列的关键字k映射到第i个桶中(即桶数组B的下标 i) , ...
- 排序算法(7)----桶排序
桶排序: * 计数排序适合小范围的大量重复元素,而桶排序适合区间内尽可能随机的元素 * 它的思想是: * 把数据存在的区间划分为小的区间,就像桶一样,这些在一个桶中的数据在桶内排好序,再合并成排序 ...
最新文章
- 数组的有关属性和方法
- 注释很全的抽象工厂(没用简单工厂优化)
- Android上使用OpenGLES2.0显示YUV数据
- python 廖雪峰数据分析统计服_廖雪峰Python总结1
- Vue3项目 --- Mock.js模拟数据测试
- 1.8编程基础之多维数组 03 计算矩阵边缘元素之和 python
- web字体设置成平方字体_探索免费和开放的Web字体
- php log 行号 debug_backtrace,PHP debug_backtrace() 函数生成 backtrace(回溯跟踪)
- winform flash
- 模拟Post登陆带验证码的网站
- 股票量化学习——复权因子计算
- python允许无止境的循环_A-level Computer Science 计算机科学学习笔记/经验分享/教程 (12.6):PHP...
- win10无限重启_让迷你掌上电脑更具生产力,GPD安装 Win10+Ubuntu双系统
- 如何让一个PNG图片背景透明
- 大内高手—常见内存错误
- 原码/补码的加减运算and溢出判断
- 2022-6-13 全O(1)的数据结构,两数相加,无重复字符的最长子串,寻找两个正序数组的中位数,盛最多水的容器,......
- 联想thinkcentre微型计算机,联想ThinkCentre一体机_ThinkCentre台式机-ThinkPad官网
- Linux shell 交互式编程、TCL/TK 和 Expect 编译与安装、expect 编程
- Java工程师必备技能有哪些?
热门文章
- 乐视影业嬗变:从影业到物联网
- Android中设置显示文本,Android文本显示控件-TextView属性详解
- 博物馆展示沉浸式互动体验空间应用
- 广发证券java_【广发证券Java面试】广发证券java面试。-看准网
- linux-软件包管理及RPM包管理(rmp命令管理)
- 【独立站运营】提高客户体验的 7种有效方法
- 软件体系结构——4+1视图
- 又一里程碑!阿里首推Java技术成长笔记,业内评级“钻石级”
- Git 单个仓库使用单独(非全局)的用户名
- iphone小说类软件用UIPageViewController实现