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

洛谷P1177【模板】排序:十种排序算法全解(2)

我们接着上一篇继续讲【洛谷P1177【模板】排序:十种排序算法全解(1)】

三、计数排序(Counting Sort)

仅适用于数据范围较小的情况

// Java
import java.io.*;
public class Main {static final int OFFSET = 100000;public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(br.readLine());String[] strs = br.readLine().split(" ");int[] cnt = new int[200001];for (int i = 0; i < n; i++) cnt[Integer.parseInt(strs[i]) + OFFSET]++;StringBuilder sb = new StringBuilder();for (int i = 0; i <= 200000; i++) while (cnt[i]-- > 0) sb.append(i - OFFSET).append(" ");System.out.println(sb);}
}
# Python
n = int(input())
nums = list(map(int, input().split()))
min_val, max_val = min(nums), max(nums)
offset = -min_val
count = [0] * (max_val - min_val + 1)
for num in nums:count[num + offset] += 1
sorted_arr = []
for i in range(len(count)):sorted_arr.extend([i - offset] * count[i])
print(' '.join(map(str, sorted_arr)))
// C
#include <stdio.h>
#include <limits.h>
int main() {int n;scanf("%d", &n);int min_val = INT_MAX, max_val = INT_MIN;int arr[n];for (int i = 0; i < n; i++) {scanf("%d", &arr[i]);if (arr[i] < min_val) min_val = arr[i];if (arr[i] > max_val) max_val = arr[i];}int size = max_val - min_val + 1;int* count = calloc(size, sizeof(int));for (int i = 0; i < n; i++) count[arr[i] - min_val]++;for (int i = 0; i < size; i++)while (count[i]-- > 0) printf("%d ", i + min_val);return 0;
}

http://www.xdnf.cn/news/32203.html

相关文章:

  • Docker安装与介绍(一)
  • 【工具变量】A股上市公司信息披露质量KV指数测算数据集(含do代码 1991-2024年)
  • 青少年编程与数学 02-016 Python数据结构与算法 29课题、自然语言处理算法
  • 黑马Java基础笔记-1
  • 计算机网络——常见的网络攻击手段
  • 面试题之如何设计一个秒杀系统?
  • 编程语言基础 - C++ 面试题
  • jenkins尾随命令
  • word选中所有的表格——宏
  • ETF价格相关性计算算法深度分析
  • Java Stream 复杂场景排序与分组技术解析与示例代码
  • 蓝桥杯 蜗牛 动态规划
  • 遨游科普:防爆平板是指什么?有哪些应用场景?
  • 使用vue2技术写了一个纯前端的静态网站商城-鲜花销售商城
  • javassist
  • Python concurrent.futures模块的ProcessPoolExecutor, ThreadPoolExecutor类介绍
  • 在 Node.js 中使用原生 `http` 模块,获取请求的各个部分:**请求行、请求头、请求体、请求路径、查询字符串** 等内容
  • Python爬虫实战:获取网易新闻数据
  • Windows系统安装`face_recognition`
  • 2. ubuntu20.04 和VS Code实现 ros的输出 (C++,Python)
  • DeepSeek与Napkin:信息可视化领域的创新利器
  • [matlab]南海地形眩晕图代码
  • Github 2025-04-19Rust开源项目日报 Top10
  • Prompt-Tuning 提示词微调
  • 机器学习核心算法全解析:从基础到进阶的 18 大算法模型
  • MySQL运维三部曲初级篇:从零开始打造稳定高效的数据库环境
  • 10软件测试需求分析案例-查询学习信息
  • 详讲Linux下进程等待
  • Go-zero框架修改模版进行handler统一响应封装
  • 手撕 简易HashMap