热门标签 | 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]]--;

推荐阅读
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 洛谷 P4009 汽车加油行驶问题 解析
    探讨了经典算法题目——汽车加油行驶问题,通过网络流和费用流的视角,深入解析了该问题的解决方案。本文将详细阐述如何利用最短路径算法解决这一问题,并提供详细的代码实现。 ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ... [详细]
  • Irish budget airline Ryanair announced plans to significantly increase its route network from Frankfurt Airport, marking a direct challenge to Lufthansa, Germany's leading carrier. ... [详细]
  • 本文详细介绍了C++中的构造函数,包括其定义、特点以及如何通过构造函数进行对象的初始化。此外,还探讨了转换构造函数的概念及其在不同情境下的应用,以及如何避免不必要的隐式类型转换。 ... [详细]
  • 本文介绍如何手动实现一个字符串连接函数,该函数不依赖于C语言的标准字符串处理函数,如strcpy或strcat。函数原型为void concatenate(char *dest, char *src),其主要作用是将源字符串src追加到目标字符串dest的末尾。 ... [详细]
  • 本文通过分析一个具体的案例,探讨了64位Linux系统对32位应用程序的兼容性问题。案例涉及OpenVPN客户端在64位系统上的异常行为,通过逐步排查和代码测试,最终定位到了与TUN/TAP设备相关的系统调用兼容性问题。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • Go从入门到精通系列视频之go编程语言密码学哈希算法(二) ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • 3.[15]Writeaprogramtolistallofthekeysandvaluesin%ENV.PrinttheresultsintwocolumnsinASCIIbet ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
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社区 版权所有