热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ALDS1_6_A:桶排序算法详解与实现

题目链接:http:judge.u-aizu.ac.jponlinejudgedescription.jsp?idALDS1_6_A输入:一个数组输

题目链接:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_6_A

输入:一个数组

输出:计数排序后的数组

思路:新开一个数组,输入数组的元素的值作为新数组的下标志,输入数组相同元素出现过的次数作为新数组的value

排序时,把新数组C递加,C[n+1]=C[n+1]+C[n];得到的C[n]里面存的是排序后,该元素的位置。需要注意的是,相同的元素会获得相同的位置,需要进行修正。

代码如下:

#include
#include
#include
using namespace std;
int A[2000010],B[2000010];
int C[100010];int main (){int n;cin>>n;for(int i=0;i<100000;i++) C[i]=0;for(int i=0;i>A[i+1];C[A[i+1]]++;}for(int i=1;i<100000;i++) C[i]+=C[i-1];for(int i=1;i<=n;i++){B[C[A[i]]]=A[i];C[A[i]]--;}for(int i =1;i<=n;i++) cout<}

按照自己之前的理解,也可以直接按下面这样写:

在获取C[n]之后,不把新数组C递加,直接从小到大遍历,按次数输出,代码如下:

#include
#include
#include
using namespace std;
int A[2000010];
int C[100010];int main (){int n;cin>>n;for(int i=0;i<100000;i++) C[i]=0;for(int i=0;i>A[i];C[A[i]]++;}int flag=0;for(int i=0;i<100000;i++){for(int j=C[i];j>0;j--) if(flag) {cout<<" "<}

错点:

1.修正的过程这样完成

B[C[A[i]]]=A[i];
C[A[i]]--;

推荐阅读
  • 本文详细探讨了KMP算法中next数组的构建及其应用,重点分析了未改良和改良后的next数组在字符串匹配中的作用。通过具体实例和代码实现,帮助读者更好地理解KMP算法的核心原理。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 题目描述:给定n个半开区间[a, b),要求使用两个互不重叠的记录器,求最多可以记录多少个区间。解决方案采用贪心算法,通过排序和遍历实现最优解。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
author-avatar
徐成奕_98743
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有