计数排序

【计数排序】十大排序算法之计数排序 【计数排序】十大排序算法之计数排序,是稳定的排序(属于桶排序的一种)。 阅读详情
#include<iostream>
using namespace std;
/*
| 参数说明:输入数组in[], 输出数组out[], 输入数组长度,输入数组中的最大值。
|
|数组count[]为计数数组,记录输入数组in中重复出现的元素的个数 
*/
void count_sort(int in[], int out[], int size, int max_value)
{
     int* count = new int [max_value];
     //把计数数组每一位都赋值为0 
     for (int i = 0; i <= max_value ; i++ )
     	   count[i] = 0;
     	   
     /*依次取出数组in中的值,并把值作为数组count的下标,
     |且计数数组in中重复出现的值的个数,并把此计数值作为数组count的取值 
     */ 
     for (int i = 0; i < size; i++)
     	   count[in[i]] = count[in[i]] + 1;
     	
	/*count[max_value]中记录的是数组in[size]中每一个元素出现的次数
	|当累加每个元素出现的次数时,相应的就能计算出对应的在数组out[size]中的位置
	|比如在in[]中有15个元素比in[POS]处的值小时,则in[POS]就可以放在out[POS]处。
	|
	|参数max_value表示数组in中最大的值,该值作为数组count的上界count[0 -> max_value],
	|
	|假设value()是取值函数,pos()是取位置函数,repeat_num()是数组内重复元素出现的次数 
	|那么数组in和数组count就有这样的对应关系:
	|
	|value( in ) == pos( count ) ,repeat_num( in ) == value( count )
	|
	|简述:以0 --> size从数组in中取值,以此值作为数组count的下标,并在count记录
	|数组in中重复值出现的次数。 
	*/   
     for (int i = 1; i <= max_value; i++)
     	   	  count[i] = count[i] + count[i-1];
     	   	  
     for ( int i = size - 1; i >= 0; i-- )
     {
     	     out[ count[ in[i] ] -1] = in[i];
     	     count[in[i]] = count[in[i]] - 1;
     }
     delete [] count;
 }
 
 int main()
 {
     int sur[] = {10,9,6,9,10,3,5,6,3,1};
     
     int len = sizeof(sur)/sizeof(int);
     int* des = new int [len];
     int max_k = 10;
     
     count_sort(sur, des, len, max_k);
     
     for ( int z = 0; z < len; z++)
     	   cout << des[z] << "  ";
     
     
     delete [] des;
     cin.get();
     return 0;
 }
 
 


【Lane】 Ultra-Fast-Lane-Detection 复现 引言 车道线检测源码复现以及训练自己的数据集 1 环境搭建 conda create -n lane python=3.7 conda activate lane # 激活环境 conda install pytorch torchvision cudatoolkit=10.1 -c pytorch pip install -r requirements.txt 2 下载项目源码 若在服务器上可以用指令下载,否则直接在网址中下载 git clone https://github.com/cfzd/U 阅读详情

相关推荐

告别GPS,用Sentinel-1数据+Python实战SBAS-InSAR监测城市地面沉降(保姆级教程)

本文详细介绍了如何利用Sentinel-1数据和Python实现SBAS-InSAR技术监测城市地面沉降。通过保姆级教程,从环境配置、数据获取到干涉处理、时序分析和形变反演,逐步解析全流程技术细节,帮助读者掌握毫米级精度的形变监测方法,并以上海陆家嘴区域为例展示实际应用效果。

weixin_32771907的博客 535

排序之计数排序

计数排序是一种线性时间复杂度的排序算法,适用于处理整数且整数的范围不大的情况。它是基于这样的思想:对于每个元素,我们可以计算出它在排序后数组中的位置,然后将元素放到该位置。计数排序的基本步骤如下:以下是计数排序的简单理解:将每个元素放到它在排序后数组中的位置上,我们可以使用遍历:给定一个长度为 n 的数组 arr ,其中的元素都是“非负整数”由于 的各个索引天然有序,因此相当于所有数字已经排序好了。接下来,我们遍历 ,根据各数字出现次数从小到大的顺序填入 arr 即可: 但是假设输入数据是商品对象,

Small_entreprene的博客 1176

小白快速上手 labelimg:新手图像标注详解教程

本教程主要帮助没有使用过labelimg的小白上手该软件,快速学会基本操作和打标签,为数据集准备打下基础。

小白一枚~ 2万+

计数排序详解

计数排序的重点是:将序列中的元素作为键存储在额外的数组空间中,通过遍历来排序

weixin_44713306的博客 1万+

(35)远程识别(又称无人机识别)(一)

Ardupilot官网关于《Peripheral Hardware》的翻译 —《(35) 远程识别(又称无人机识别)》。

无人机开发(开源Ardupilot) 4万+

使用python读取卫星测高数据并做相应的处理

5.在python处理结果如下,最大的优点就是比matlab快30-40倍。4.进行粗差的如NaN值,还有进行3倍方差进行对粗差处理。1.首先遍历卫星数据的文件,挨个读取每个数据。有问题,请各位读者及时告知,一起完善内容。3.进行下一步,筛选在研究区域的数据。4.进行按天求平均和按月求平均。2.读取数据主体代码。

爱下去更难! 1133

计数排序和稳定的计数排序

计数排序不是基于元素比较,而是利用数组下标来确定元素的正确位置。计数排序是一个稳定的排序算法。当输入的元素是 n 个 0到 k 之间的整数时,时间复杂度是O(n+k),空间复杂度也是O(n+k),其排序速度快于任何比较排序算法。当k不是很大并且序列比较集中时,计数排序是一个很有效的排序算法。 算法思路 计数排序的算法思路是定义一个大小为序列最大值-最小值的大小的数组,遍历每一个元素,将其映射到数组...

weixin_42559610的博客 3195

UUVsimulator仿真

pub -r 10 /cmd_vel geometry_msgs/Twist控制运动没有反应。通过键盘控制运动,接收不到/cmd_vel消息。

Fatal__的博客 4606

排序算法 计数排序(普通计数排序、桶排序)

将区间[0, 1)划分为n个大小相等的子区间(桶),每桶大小1/n:[0, 1/n), [1/n, 2/n), [2/n, 3/n),…计数排序的基本思想是对于给定的输入序列中的每一个元素x,确定该序列中值小于x的元素的个数(此处并非比较各元素的大小,而是通过对元素值的计数和计数值的累加来确定)。当然这是一种牺牲空间换取时间的做法,而且当O(k)>O(n*log(n))的时候其效率反而不如基于比较的排序(基于比较的排序的时间复杂度在理论上的下限是O(n*log(n)), 如归并排序,堆排序)。

qq_36511401的博客 1万+

量化交易 米筐 案例:市值因子选股策略

案例:市值因子的选股策略 1.结果 获得超额收益 年化 49% 2. 从股票中选择市值小的股票 选定财务数据筛选 进行每日调仓(多因子选股调仓 周期频率会小一些) 3. 代码 估值有关指标 # 在沪深300股票中,选出市值比较小的10只股票 # 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。 def init(context): # 沪深300组合 stocks = index_components('000300.XSHG') # 沪深3

廷益_飞鸟的博客 2313

星敏感器:卫星姿态测量的“星空导航仪”

在卫星、航天器和深空探测器的姿态控制系统中,星敏感器(Star Tracker) 是最精确的姿态测量设备之一。它通过识别恒星的位置,计算出航天器在惯性空间中的三轴姿态,精度可达 角秒级(arcsecond),是许多高精度任务(如遥感、天文观测、深空探测)的核心传感器。

ScilogyHunter的博客 3697

Java实现计数排序

1 问题描述 给定一组数据,请使用计数排序,得到这组数据从小到大的排序序列。 2 解决方案 2.1比较计数排序 下面算法的时间复杂度为O(n^2),空间复杂度为O(n)。此方法对于任意一组数据均可排序。 package com.liuzhen.practice; public class Main { public void comparisonCountingSort(int...

南 墙 1万+

被滑块虐了3个月!我终于写出了零失败的Python滑块验证码通杀方案(AI识别+真人轨迹)

缺口识别的偏移量一定要算对:滑块的初始位置一般在图片左侧,宽度约50像素,一定要减去这个初始宽度,不然会滑多了;绝对不要用Selenium的drag_and_drop方法:这个方法是匀速滑动,直接被风控秒识别,必须自己分步控制鼠标移动;滑动前后必须加停顿:真人按住滑块会停0.1-0.3秒再开始滑,松开之前也会停0.05-0.1秒,不要按下去立刻就滑,滑完立刻就松;不要每次都滑的完美无缺:可以设置10%的概率故意滑错一次,然后刷新验证码重新滑,更像真人;无头模式通过率极低。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 501

Java计数排序

计数排序的基本思想就是:加入输入一个数x,如果我们可以找到比x小的数有几个,那么就可以直接将x放入到对应的输出数组的位置。 比如输入一个数x=12,发现在输入的数据中,比12小的有4个,那么毫无疑问12就该排在第五位。 废话不多说,代码中有详细的思路讲解: import java.util.Arrays; /** * 计数排序2 * 中间数组 通过数组下标来表示原始数组的值,来统计每个元素出...

qichangjian的博客 3825

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

比较计数排序和分布计数排序

比较计数排序 针对排序列表中的每一个元素,算出列表中小于该元素的元素个数,并把结果记录在一张表中。这个“个数”指出了该元素在有序列表中的位置。例如一个列表A中有一个元素为10,而小于10的元素个数有5个,那么10应该排在第六个位置上,也就是A[5](下标从0开始)。这个算法称为比较计数排序。 下面来个图形象的说明。 A[0…5] 62 31 84

淡然坊 4734

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

计数排序 C++

知识点 C++产生随机数 算法系列-计数排序 计数排序步骤 数组开辟空间:计算大小,初始化 遍历排序数组,对计数数组赋值 遍历计数数组,对原数组排序 时间:O(n),空间:O(m),m是最大值与最小值的差,可能是n #include<iostream> #include<stdlib.h>//随机数使用 #include<time.h> #inclu...

haiki66的博客 583

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

计数排序就是这么容易

文章目录前言1.计数排序(Counting Sort)1.1.计数排序(Counting Sort)2.原理2.1.步骤2.2.实例题目3.代码3.1.代码4.扩展阅读4.1.局限性 前言 声明:参考来源互联网,有任何争议可以留言。站在前人的肩上,我们才能看的更远。 本教程纯手打,致力于最实用教程,不需要什么奖励,只希望多多转发支持。 欢迎来我公众号,希望可以结识你,也可以催更,微信搜索:JavaPub 有任何问题都可以来谈谈 ! 计数排序是比较容易的排序算法,但是对数量级较小的整数排序很.

JavaPub 656

比较计数排序与分布计数排序

比较计数排序 针对排序列表中的每一个元素,算出列表中小于该元素的元素个数,并把结果记录在一张表中。这个“个数”指出了该元素在有序列表中的位置。例如一个列表A中有一个元素为10,而小于10的元素个数有5个,那么10应该排在第六个位置上,也就是A[5](下标从0开始)。这个算法称为比较计数排序。 下面来个图形象的说明。 A[0…5] 62 31 84 96 19 47 count[] 0 0 0 0 0 0 首先用于计数的数组清零。 A[0…5] 62 31 84 96 19 47 count[] 3 0 1

zj的博客 942

java 计数排序_计数排序就是这么容易

前言声明:参考来源互联网,有任何争议可以留言。站在前人的肩上,我们才能看的更远。本教程纯手打,致力于最实用教程,不需要什么奖励,只希望多多转发支持。 欢迎来我公众号,希望可以结识你,也可以催更,微信搜索:JavaPub有任何问题都可以来谈谈 !计数排序是比较容易的排序算法,但是对数量级较小的整数排序很实用。1.计数排序(Counting Sort)1.1.计数排序(Counting Sort)计数...

weixin_36231030的博客 165

【排序】——计数排序

【排序】——计数排序 1、应用场景: 计数排序可以看作是一种特殊的桶排序。 当要排序的n个数据,所处范围并不大,我们就可以把数据划分成n个桶。每个桶内的数据值都是相同的,桶内不需要再排序。 比如高考的分数系统 满分900分,最低0分。因此数据范围只有0-900,但是考生却很多有几十万。此时我们要对这几十万个考生的分数进行排名,就可以使用到计数排序。 2、一个简化的例子说明: 1、假设只有8个考生,分数在0到5之间,我们把这8个考生的分数放到一个数组里面,记为分数数组arr: int[] arr = {2,

weixin_41605945的博客 399
上一篇: 冒泡排序
下一篇: 快速排序(变种)
错_对
博客等级 码龄16年 68粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值