博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
桶排序——PowerShell版
阅读量:5736 次
发布时间:2019-06-18

本文共 909 字,大约阅读时间需要 3 分钟。

读啊哈磊的算法书有感,十一期间想要重新学一学一些基本的算法和数据结构。不想下载编程工具了,毕竟是用室友的电脑,就用PowerShell写一下吧:

$scores = @(88,13,99,26,62,64,77)#Score's scope is from 0~100$sortedScore = New-Object System.Collections.ArrayListfor($i=0;$i -le 100;$i++){    $sortedScore.add(0)}for($i=1;$i -le $scores.count;$i++){    $sortedScore[$scores[$i-1]]++}Write-Host "The sorted scores are:"for($i=0;$i -le 100;$i++){    if($sortedScore[$i] -ne 0)    {        for($j=0;$j -lt $sortedScore[$i];$j++)        {            $i        }    }}

1、这里待排序的数组$scores我写死了,也可以改写成动态输入的;

2、对于排序结果我声明了一个动态ArrayList类型数组;

3、0到100分之间每一分都当成是一个桶,排序结果数组的索引分别对应0到100分,并初始化每个索引位的数值为0;

4、对于待排序数组中的每个数都对应于排序结果数组中相应的索引值。例如:88分对应于排序结果数组中的第88位;

5、遍历待排序数组,每遍历一个数,就为排序结果数组相应索引值位置的数值+1;

6、输出排序结果数组,如果索引位数值不为0,说明加过,加过就说明待排序数组中有,索引位数值代表加过的次数,也就是待排序数组中该索引位对应的分数出现过的次数。索引位数值为几就输出几次该索引位对应的分数值;

7、查看排序结果。

结果如下:

缺点:

1、只能排列分数,不能按照得分排列得分者;

2、排序数范围越大,浪费的空间越大(因为要初始化的排序结果数列会随着排序数范围增大而增大);

3、只能对整数进行排序。

转载地址:http://lvwzx.baihongyu.com/

你可能感兴趣的文章
Ossim下的安全合规管理
查看>>
如何让一个linux命令后台运行,而不受终端影响
查看>>
DelphiWebMVC框架下BPL热部署实现
查看>>
spring-boot | 日志
查看>>
Cordova Hot Code Push Plugin -9 错误治疗方法
查看>>
C++与MySQL的冲突
查看>>
python 安装beautifulsoup4
查看>>
Spring 之 配置(Java之负基础实战)
查看>>
siki学习之观察者模式笔记
查看>>
PYQT窗口可视化编程
查看>>
单元测试
查看>>
spring.net 继承
查看>>
html5-css的引入
查看>>
Spring AOP
查看>>
<基础> PHP 进阶之 函数(Function)
查看>>
强极则辱
查看>>
eslasticsearch操作集锦
查看>>
git stuff
查看>>
前端 -- margin的用法
查看>>
Ext Gridpanel的用法
查看>>