啊哈java_1.桶排序——啊哈算法java实现
/**
* 题目:
* 5个人考试得分分别为 5分,3分,5分,2分,8分;满分是10分;
* 要将 5 3 5 2 8 这个数组进行降序排序;
* 即排序后变为 8 5 5 3 2;
* */
/**
* 桶排序解法: 建一个大小为11的一维数组a,a[0]~a[10]元素都初始化为0,
* 用元素下标0~10表示分数,用元素的值表示有多少人得过该元素下标对应的分数; 例如:
* a[1]=0表示0人得1分,a[5]=2表示有2人得5分,‘5’代表5分,‘2’代表2个人得5分;
*
* 接下来在a数组的循环中对每个人的分数进行遍历,分数值等于数组下标,该数组的值加1
* */
public class BucketSort {
public int[] bucketSort(int[] array) {
int[] a = new int[11];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < array.length; j++) {
if (array[j] == i) {
a[i] += 1;
}
}
}
return a;
}
public static void main(String[] args) {
BucketSort bucket = new BucketSort();
int[] array = { 5, 3, 5, 2, 8 };
int[] a = bucket.bucketSort(array);
for (int i = a.length - 1; i >= 0; i--) {
if (a[i] > 0) {
for (int j = 0; j < a[i]; j++)
System.out.println(i);
}
}
}
}
输出:
8 5 5 3 2
啊哈java_1.桶排序——啊哈算法java实现相关推荐
- C++bucket sort桶排序的实现算法(附完整源码)
C++bucket sort桶排序的实现算法 C++bucket sort桶排序的实现算法完整源码(定义,实现,main函数测试) C++bucket sort桶排序的实现算法完整源码(定义,实现,m ...
- C语言桶排序Bucket sort算法(附完整源码)
桶排序Bucket sort算法 桶排序Bucket sort算法的完整源码(定义,实现,main函数测试) 桶排序Bucket sort算法的完整源码(定义,实现,main函数测试) #includ ...
- python快速排序算法详细图解_Python实现桶排序与快速排序算法结合应用示例
说明: FreeNAS是一个基于FreeBSD的开源网络存储系统,支持iSCSI.NFS等共享协议, 通过Web页面进行管理,安装FreeNAS最小需要2G硬盘. 最新版本下载: http://iso ...
- 【排序算法】图解桶排序
目录 前言 桶排序思想 桶排序算法分析 时间复杂度分析 桶排序适用情况 实现一个桶排序 结语 前言 在数据结构与算法的排序中,我们很多人可能更多的熟悉冒泡排序.快速排序.归并排序.可能对堆排序.桶排序 ...
- 排序算法----桶排序(java版)
桶排序 桶排序(Bucket Sort)顾名思义,会用到"桶",我们可以将其想象成一个容器,核心思想是将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行排序.桶内排完序之后 ...
- 桶排序算法(基于Java实现)
title: 桶排序算法(基于Java实现) tags: 桶排序算法 桶排序算法的原理和代码实现 一.桶排序算法的原理 桶排序,顾名思义,会用到"桶",核心思想是将要排序的数据分到 ...
- 有道算法题--排序之桶排序实现求排序后相邻最大差值问题
前言 一直误以为写文章太耗费费时间,昨日为尊敬高贵帅气逼人的导师所一语惊醒(未一鸣惊人之日,绝不提尊师名讳,嗯,没错),分享才是程序员最快的提升: 今天开始,做不到多写多练,就不是诚实善良的南方小菜啦 ...
- php桶排序,PHP实现桶排序算法
本篇讲解PHP实现桶排序算法. 简单意义上的桶排序: 桶排序的原理是先安排N+1个桶作为容器,若数据范围为N的话. 然后将测试数据(所需排序的数据)进行循环,放入对应的桶内.数据一定是在范围N内的. ...
- 木桶排序算法_这才是你想要桶排序
前面说的 昨天发的桶排序文章,有同学回复,确实有比较精明的同学,文章就是想提出一个比较简单的思路,本来想给自己的排序方式写个名字叫做"木桶排序",这篇文章讲解真正的桶排序,结合前面 ...
最新文章
- 违反计算机网络安全如何处罚,网络信息安全知识:违反治安管理行为的处罚包括()。...
- 微信支付条码支付上线啦
- Byzantine Fault Tolerance in Proof-of-stake protocols
- 手机usb共享计算机网络连接,如何将手机wifi网络通过USB共享给电脑?小编教你共享方法...
- java中 静态方法与成员方法何时使用
- KeyMob移动广告聚合平台-致力于打造最牛的聚合平台
- 我如何使用回归分析通过Scikit-Learn和Statsmodels分析预期寿命
- docker 镜像开机自启动_Docker常用命令总结
- java如何配置log4j_eclipse中纯java配置log4j日志
- a better git log
- 自定义报表(demo1)
- 随机出题在线考试系统php_随机出题在线考试系统
- python xy 官网_zwPython,字王集成式python开发平台,比pythonXY更强大、更方便。
- 计算机四级c语言试题及答案,计算机等级考试试题及答案
- 第三方包的安装及管理
- Linux三剑客练习
- 使用Java自动化方法模拟Android手机点击、触屏事件
- 贝多芬没能写完的《第十交响曲》,即将被人工智能完成
- 固定IP地址及其重启后地址更改的解决方法
- 敏捷 Scrum 大师班认证培训的终极方案 | The Ultimate Agile Scrum Master Certification Training
热门文章
- 揭秘阿里云EB级大数据计算引擎MaxCompute
- Quick BI v3.0版本全新起航——2018杭州云栖大会
- 华南地区最大数据中心上线 阿里云河源数据中心正式开服
- IBM推出可加快响应跨云网络威胁的开放技术 业界首次实现跨安全工具和跨云的搜索威胁功能,无需移动数据
- oracle表压缩比,oracle的compress 特性介绍
- android 离屏渲染 简单书,Android OpenGL ES 8.FrameBuffer离屏渲染
- 虚拟机linux命令界面转,虚拟机-linux系统中图形界面和命令行界面切换
- qtextedit 默认文案_QTextEdit的paste
- 项目运行报'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件“
- 微信小程序---实现输入手机验证码功能