当前位置: 首页 > news >正文

java排序算法-计数排序

计数排序的思路

计数排序的基本思路:

  1. 确定取值范围: 遍历整个待排序的数组,确定数组中元素的取值范围,找到最小值和最大值。
  2. 创建计数数组: 创建一个计数数组,其长度为取值范围的大小,用于统计原始数组中每个元素出现的次数。
  3. 统计元素个数: 遍历原始数组,将每个元素出现的次数记录到计数数组中,计数数组的索引对应于元素的值。
  4. 累加计数数组: 对计数数组进行累加操作,每个位置的值等于其前面所有位置值之和。这一步的目的是确定每个元素在排序后的数组中的位置。
  5. 构建有序数组: 创建一个与原始数组等长的临时数组,遍历原始数组,根据累加计数数组确定每个元素在有序数组中的位置,同时更新计数数组中对应元素的计数。
  6. 得到排序结果: 此时,临时数组就是排序完成的结果。
public class Sort {//5.计数排序public static int[] countingSort(int... array){int max=array[0],i,j;for(i=1;i<array.length;i++){if(array[i]>max){max=array[i];}}//新建max+1的整数数组int[] tempArray = new int[max+1];for (i = 0; i < array.length; i++) {tempArray[array[i]]++;}for (i = 0,j=0; i < tempArray.length; i++) {for (int k = 0; k < tempArray[i]; k++) {array[j++]=i;}}return array;}public static void main(String[] args) {int[] a={52,1,0,49,70,62,81,17};System.out.println(Arrays.toString(countingSort(a)));}
}

结果展示 

相关文章:

java排序算法-计数排序

计数排序的思路 计数排序的基本思路&#xff1a; 确定取值范围&#xff1a; 遍历整个待排序的数组&#xff0c;确定数组中元素的取值范围&#xff0c;找到最小值和最大值。创建计数数组&#xff1a; 创建一个计数数组&#xff0c;其长度为取值范围的大小&#xff0c;用于统计…...

力扣-hot100(滑动窗口最大值)

239. 滑动窗口最大值 困难 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1&#xff1a; 输入&#xff1a;nums […...

每日c/c++题 备战蓝桥杯(P1049 [NOIP 2001 普及组] 装箱问题)

洛谷P1049 装箱问题题解&#xff1a;动态规划在背包问题中的经典应用 题目描述 P1049 装箱问题是一道典型的0-1背包问题变种。题目要求在给定箱子容量V和n个物品体积的情况下&#xff0c;选择若干物品装入箱子&#xff0c;使得箱子的剩余空间最小。最终输出这个最小剩余空间的…...

【尚硅谷Redis6】自用学习笔记

Redis介绍 Redis是单线程 多路IO复用技术&#xff08;类似黄牛买票&#xff09; 默认有16个库&#xff0c;用select进行切换 默认端口号为6379 Memcached&#xff1a;多线程 锁&#xff08;数据类型单一&#xff0c;不支持持久化&#xff09; 五大常用数据类型 Redis key …...

产品更新丨谷云科技ETLCloud V3.9.2版本发布

谷云科技 ETLCloud 集成平台迎来了每月一次的功能迭代&#xff0c;本月发布版本号为 3.9.2 版本&#xff0c;为用户带来了新的功能、优化改进以及问题修复&#xff0c;以下是详细介绍&#xff1a; 新增组件 本次更新新增了众多实用组件&#xff0c;涵盖了京东和 Shopify 相关…...

Promise并发控制与HTTP请求优化

Promise并发方法对比 #mermaid-svg-tnmGzOkgNUCrbvfI {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-tnmGzOkgNUCrbvfI .error-icon{fill:#552222;}#mermaid-svg-tnmGzOkgNUCrbvfI .error-text{fill:#552222;stroke…...

G1垃圾回收器中YoungGC和MixedGC的区别

在 G1 垃圾回收器中&#xff0c;Mixed GC 和 Young GC 的区别主要体现在以下几个方面&#xff1a; 作用范围 Young GC&#xff1a;仅针对年轻代中的Region进行回收&#xff0c;包括 Eden 区和 Survivor 区的 Region。Mixed GC&#xff1a;会回收所有年轻代的 Region 以及部分…...

Web4.0身份革命:去中心化身份系统的全栈实现路径

去中心化身份&#xff08;DID&#xff09;技术栈正在重构数字世界的信任根基&#xff0c;本文从密码学协议、存储网络、验证框架三个维度&#xff0c;解析符合W3C标准的身份系统构建方案。通过Hyperledger Aries架构实践&#xff0c;揭示如何实现跨链身份互通、数据主权控制、零…...

iOS/Flutter混合开发之PlatformView配置与使用

环境&#xff1a;Xcode 16.3、Flutter 3.29.2、Dart 3.7.2。 使用背景&#xff1a;需要在flutter界面中嵌入一个iOS原生控件。 步骤&#xff1a; 1. iOS侧实现&#xff1a; 1.1&#xff1a;PlatformView实现 class FLNativeView: NSObject, FlutterPlatformView {private v…...

Libconfig 修改配置文件里的某个节点

THCommandStatus ( { Status "1"; index 5; }, { Status "2"; index 8; }, { Status "3"; index 7; }, { Status "4"; index 0; } ); 比如这是配置文件的内容&#xff…...

【金仓数据库征文】_AI 赋能数据库运维:金仓KES的智能化未来

AI 赋能数据库运维&#xff1a;金仓KES的智能化未来 &#x1f31f;嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 在当今数字经济飞速发展的时代&#xff0…...

【MySQL】3分钟解决MySQL深度分页问题

什么是深度分页问题&#xff1f;该如何解决呢?这篇文章展开讲讲 什么是深度分页&#xff1f; 当查询结果集非常大时&#xff0c;需要获取靠后页码的数据&#xff0c;比如第1000页、10000页。 如&#xff1a; SELECT * FROM table LIMIT 10000, 10; -- 获取第10001-10010条…...

GitHub 趋势日报 (2025年04月24日)

本日报由 TrendForge 系统生成 https://trendforge.devlive.org/ &#x1f4c8; 今日整体趋势 Top 10 排名项目名称项目描述今日获星总星数语言1kortix-ai/sunaSuna - Open Source Generalist AI Agent⭐ 1105⭐ 3639TypeScript2cloudcommunity/Free-CertificationsA curated …...

一种双模式机器人辅助股骨干骨折钢板植入方法

股骨干骨折是一种常见的高能损伤&#xff0c;微创内固定是首选治疗方法。然而&#xff0c;钢板植入过程中存在不可见、不准确和不稳定等问题。山东大学研究团队提出了一种双模式机器人辅助钢板植入方法&#xff0c;通过神经网络模型规划钢板植入轨迹&#xff0c;然后利用机械臂…...

全球碳化硅晶片市场深度解析:技术迭代、产业重构与未来赛道争夺战(2025-2031)

一、行业全景&#xff1a;从“材料突破”到“能源革命”的核心引擎 碳化硅&#xff08;SiC&#xff09;作为第三代半导体材料的代表&#xff0c;凭借其宽禁带&#xff08;3.26eV&#xff09;、高临界击穿场强&#xff08;3MV/cm&#xff09;、高热导率&#xff08;4.9W/cmK&…...

IDEA搭建环境的五种方式

一、普通的java项目 File--New--Project 选择Java&#xff0c;jdk选择1.8版本&#xff0c;然后点next 输入项目名和路径名&#xff0c;点击Finish 创建包结构&#xff0c;编写Class类 编写主方法&#xff0c;输出Hello标志完成 二、普通的javaWeb项目 Java Enterprise-- 勾选…...

隐形革命:环境智能如何重构“人-机-境“共生新秩序

引言 在万物互联的时代&#xff0c;环境智能&#xff08;Ambient Intelligence, AmI&#xff09;正以“隐形革命者”的姿态重塑人类生活场景。通过分布式传感器、边缘计算与自适应算法的深度融合&#xff0c;AmI构建出能感知、学习并响应人类行为的智慧环境。 本文基于多领域研…...

Mysql唯一性约束

唯一性约束&#xff08;Unique Constraint&#xff09;是数据库设计中用于保证表中某一列或多列组合的值具有唯一性的一种规则。它可以防止在指定列中插入重复的数据&#xff0c;有助于维护数据的完整性和准确性。下面从几个方面为你详细解释 作用 确保数据准确性&#xff1a…...

QuecPython+GNSS:实现快速定位

概述 QuecPython 结合 GNSS&#xff08;全球导航卫星系统&#xff09;模块为物联网设备提供开箱即用的定位能力解决方案。该方案支持 GPS/北斗/GLONASS/Galileo 多系统联合定位&#xff0c;为物联网开发者提供从硬件接入到云端服务的全栈式定位解决方案。 优势特点 多体系定…...

【从零开始:自制一个Java消息队列(MQ)】

&#x1f680; 从零开始&#xff1a;自制一个Java消息队列&#xff08;MQ&#xff09; 在现代分布式系统中&#xff0c;消息队列&#xff08;Message Queue&#xff0c;MQ&#xff09;已经成为一个至关重要的组件。它帮助系统在异步处理、负载均衡、解耦等方面提供了强大的支持…...

WHAT - 已阅读书单

指数基金投资指南✅ 我们终将变富 纳瓦尔宝典 围城✅ 许三观卖血记✅ 骆驼祥子✅ 活着 白鹿原✅ 百年孤独 君主论 阿Q正传✅ 蛤蟆先生去看心理医生✅ 思考&#xff0c;快与慢 三体✅ 人类简史&#xff1a;从动物到上帝✅ 明朝那些事✅ 三国演义✅ 中国历代政治得失✅ 资治…...

代码随想录算法训练营第60期第十七天打卡

今天我们继续进入二叉树的下一个章节&#xff0c;今天的内容我在写今天的博客前大致看了一下部分题目难度不算大&#xff0c;那我们就进入今天的题目。 第一题对应力扣编号为654的题目最大二叉树 这道题目的坑相当多&#xff0c;我第一次题目没有看明白就是我不知道到底是如何…...

C 语言数组详解

一、数组的基本概念 在 C 语言中&#xff0c;数组是一种相同数据类型元素的集合&#xff0c;这些元素在内存中连续存储。通过数组&#xff0c;我们可以用一个统一的名字来管理一组相关的数据&#xff0c;并且通过下标&#xff08;索引&#xff09;快速访问其中的每一个元素。例…...

ADVB协议同步

关于视频传输&#xff0c;有多种控制时序。协议标准允许设计者选择有限的几个速率的接口来满足 系统设计目标。例如&#xff0c;一些系统使用总线时序发送信息通过line-by-line;在这个案例中&#xff0c; 容器的sof作为vsync同步的点。horizontal line blanding将插入idles,ADV…...

基于LAB颜色空间的增强型颜色迁移算法

本文算法使用Grok完成所有内容&#xff0c;包含算法改进和代码编写&#xff0c;可大大提升代码编写速度&#xff0c;算法改进速度&#xff0c;提供相关idea&#xff0c;提升效率&#xff1b; 概述 本文档描述了一种基于LAB颜色空间的颜色迁移算法&#xff0c;用于将缩略图D的…...

复合材料高置信度 DIC 测量与高级实验技术研讨会邀请函

邀请函 2025年5月8日 上海 中国复合材料学会官网会议通知 您可以点击上方蓝字跳转官网查看官网信息 主办单位&#xff1a; 中国复合材料学会 协办单位&#xff1a; 研索仪器科技&#xff08;上海&#xff09;有限公司 数字图像相关技术&#xff08;Digital Image Correla…...

解决docker部署MySQL的max_allowed_packet 限制问题

报错 Error querying database. Cause: com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large (2,471 > 2,048). You can change this value on the server by setting the max_allowed_packet variable. ### The error may exist in file …...

【XR手柄交互】Unity 中使用 InputActions 实现手柄控制详解(基于 OpenXR + Unity新输入系统(Input Actions))

摘要&#xff1a; 本文主要介绍如何使用 Input Actions&#xff08;Unity 新输入系统&#xff09; OpenXR 来实现 VR手柄控制&#xff08;监听ABXY按钮、摇杆、抓握等操作&#xff09;。 &#x1f3ae; Unity 中使用 InputActions 实现手柄控制详解&#xff08;基于 OpenXR 新…...

C++:继承机制详解

目录 一.继承的概念及定义 一&#xff09;.继承的概念 二&#xff09;.继承定义 1.定义格式 2.继承类型 3.继承类模板 二.基类和派生类间的转换 三.继承中的作用域 四.派生类的默认成员函数 一&#xff09;.4个常见默认成员函数 二&#xff09;.不可被继承的类 五…...

自然语言处理+知识图谱:智能导诊的“大脑”是如何工作的?

智能导诊系统定义与作用 智能导诊系统是一种基于人工智能技术的医疗辅助工具&#xff0c;旨在提高医疗服务效率、改善患者就医体验、降低医院运营成本&#xff0c;通过自然语言处理技术&#xff0c;智能导诊系统能够自动回答患者的常见问题&#xff0c;帮助患者快速了解自己的…...

论文阅读笔记——ZeroGrasp: Zero-Shot Shape Reconstruction Enabled Robotic Grasping

ZeroGrasp 论文 多视角重建计算大、配置复杂&#xff0c;本文将稀疏体素重建&#xff08;快且效果好&#xff09;引入机器人抓取且只考虑单目重建&#xff0c;通过利用基于物理的接触约束与碰撞检测&#xff08;这对精确抓取至关重要&#xff09;&#xff0c;提升三维重建质量将…...

Qt 调试信息重定向到本地文件

1、在Qt软件开发过程中&#xff0c;我们经常使用qDebug()输出一些调试信息在QtCreator终端上。 但若将软件编译、生成、打包为一个完整的可运行的程序并安装在系统中后&#xff0c;系统中没有QtCreator和编译环境&#xff0c;那应用程序出现问题&#xff0c;如何输出信息排查…...

Android Studio开发中Application和Activity生命周期详解

文章目录 Application生命周期Application生命周期概述Application关键回调方法onCreate()onConfigurationChanged()onLowMemory()onTrimMemory()onTerminate() Application生命周期管理最佳实践 Activity生命周期Activity生命周期概述Activity生命周期回调方法onCreate()onSta…...

vite+vue2+elementui构建之 package.json

webpack版本太低&#xff0c;构建依赖太多&#xff0c;头大。 各种查阅资料&#xff0c;弄了一份直通构建vite构建elementUi核心文件&#xff0c; 构建基于开源若依vue2vue3版本改造&#xff0c;感谢开源&#xff0c;感谢若依。 vitevue2elementui构建之 vite.config.js-CSD…...

安全编排自动化与响应(SOAR):从事件响应到智能编排的技术实践

安全编排自动化与响应&#xff08;SOAR&#xff09;&#xff1a;从事件响应到智能编排的技术实践 在网络安全威胁复杂度指数级增长的今天&#xff0c;人工处理安全事件的效率已难以应对高频攻击&#xff08;如日均万级的恶意IP扫描&#xff09;。安全编排自动化与响应&#xf…...

《Keras 3 :使用 TFServing 提供 TensorFlow 模型》

《Keras 3 :使用 TFServing 提供 TensorFlow 模型》 作者:Dimitre Oliveira 创建日期:2023/01/02 最后修改时间:2023/01/02 描述:如何使用 TensorFlow Serving 为 TensorFlow 模型提供服务。 (i) 此示例使用 Keras 3 在 Colab 中查看 GitHub 源 介绍 构建机器学习模…...

深入理解C++ 中的list容器

目录 一、引言 二、list的基本介绍 2.1 底层结构 2.2 特性 三、list的使用 3.1 构造函数 3.2 迭代器的使用 3.3 容量相关操作 3.4 元素访问相关操作 3.5 修改器操作 3.6 迭代器失效问题 四、list的模拟实现 4.1 节点定义 4.2 迭代器实现 4.3 list类实现 五、lis…...

附赠二张图,阐述我对大模型的生态发展、技术架构认识。

文章精炼&#xff0c;用两张图说明大模型发展业态方向&#xff0c;以及大模型主体技术架构。&#xff08;目前还需要进一步验证我的Thought && ideas&#xff0c;等待机会吧.........&#xff09; 图一&#xff1a;探究大模型三个层次应用方向&#xff0c;浅层次入门简…...

Java实现加密(七)国密SM2算法的签名和验签(附商用密码检测相关国家标准/国密标准下载)

目录 一、国密标准中&#xff0c;关于SM2签名验签的定义二、SM2签名和验签的实现原理1. 前置知识2. 签名生成过程3. 验签过程4. 数学正确性证明5. 安全性与注意事项 三、带userId、不带userId的区别1. 核心区别2.算法区别(1) 哈希计算过程(2) 签名验签流程 四、Java代码实现1. …...

贪心算法~~

目录 一、理论基础 二、题目练习 &#xff08;1&#xff09;455. 分发饼干 &#xff08;2&#xff09;53. 最大子数组和 - 力扣 &#xff08;3&#xff09;122. 买卖股票的最佳时机 II - 力扣&#xff08;LeetCode&#xff09; &#xff08;4&#xff09;860. 柠檬水找零…...

XYNU2024信安杯-REVERSE(复现)

前言 记录记录 1.Can_you_find_me? 签到题&#xff0c;秒了 2.ea_re 快速定位 int __cdecl main_0(int argc, const char **argv, const char **envp) {int v4; // [esp0h] [ebp-1A0h]const char **v5; // [esp4h] [ebp-19Ch]const char **v6; // [esp8h] [ebp-198h]char v7;…...

NLP系列【自然语言处理的深度学习模型综述】

自然语言处理的深度学习模型 摘要传统自然语言处理模型&#xff08;略 不作重点&#xff09;神经网络自然语言处理模型经典神经网络CNN网络模型Word2Vec模型RNN模型GPT网络模型BERT网络模型 BERT变体模型提升模型性能模型压缩 摘要 在自然语言处理任务方面&#xff0c;依据语料…...

【差分隐私】basic primitive的含义

在差分隐私领域&#xff0c;“basic primitive”一词具有特定的技术含义&#xff0c;需从单词本义及学科背景两个层面解析&#xff1a; 一、单词本义解析 “Primitive”在计算机科学中通常指代基础构建单元或核心组件&#xff0c;例如编程语言中的基本数据类型&#xff08;如整…...

数字浪潮下的算力担当:GPU 服务器的多元应用、核心价值

在当今数据洪流和信息爆炸的时代&#xff0c;算力已成为衡量国家、行业乃至企业发展水平的关键指标。而算力服务器&#xff0c;特别是 GPU 服务器&#xff0c;作为算力的核心载体&#xff0c;正以其卓越性能深刻改变着世界的运行逻辑与模式。从数据处理到云计算&#xff0c;从人…...

【Echarts】使用echarts绘制多个不同类型的中国地图

一、需求 在同一页面上绘制多个不同类型的中国地图&#xff0c;如果是在同一页面上绘制多个同一种类型的地图可以直接引用一个china.js文件&#xff0c;设置两个独立的div分别用于放置两个地图&#xff0c;并实例化配置相关参数即可&#xff0c;但是如果在同一个页面上绘制多个…...

WEB漏洞-XSS跨站原理分类

本文主要内容 原理 XSS漏洞产生原理&#xff1f; XSS漏洞危害影响&#xff1f; 分类 反射型、存储型、DOM型 手法 XSS平台使用 XSS工具使用 XSS结合其他漏洞 靶场搭建 pikachu 靶场搭建&#xff08;完整版&#xff09;-CSDN博客https://blog.csdn.net…...

PR第二课--混剪

1.音乐打点 1.1 手动打点 按钮(如图),或者,快捷键M(如果在已有打点处,再次按M键会进入对标记点的设置界面,如下下图) 1.2 插件打点 一段音乐中,有明显的鼓点时,可以使用打点插件,快捷打点;如果鼓点不明显的话,最好还是手动打点,用插件打点会打出大量的标记点,…...

Kafka和flume整合

需求1&#xff1a;利用flume监控某目录中新生成的文件&#xff0c;将监控到的变更数据发送给kafka&#xff0c;kafka将收到的数据打印到控制台&#xff1a; 在flume/conf下添加.conf文件&#xff0c; vi flume-kafka.conf # 定义 Agent 组件 a1.sourcesr1 a1.sinksk1 a1.c…...

Linux 内核网络协议栈中 inet_stream_ops 与 tcp_prot 的深度解析

在 Linux 内核网络协议栈中,TCP 协议的实现依赖于多个关键结构体的协作。其中,inet_stream_ops 和 tcp_prot 是两个核心结构体,它们分别属于不同的层次,共同完成从用户态系统调用到底层协议处理的完整链路。本文将从功能定位、协作关系、代码示例及设计哲学等方面,深入分析…...

flume整合kafka

需求一&#xff1a; 启动flume 启动kafka消费者&#xff0c;验证数据写入成功 新增测试数据 需求二&#xff1a; 启动Kafka生产者 启动Flume 在生产者中写入数据...