keep move

记一个批处理冒泡排序脚本

字数统计: 782阅读时长: 2 min
2019/03/18 Share

初次接触编程是在高二的时候,那时家就在学校中,住着职工房,整个学校有两台电脑,一台可以上网放在校长办公室,另一台不可以放在教师办公室。

暑假时住在学校的大家会到校长室吹空调乘凉,也就在那时发现校长室电脑里面有个清理垃圾的.bat文件,打开后便在黑底白字的控制台上疯狂的输出语句,而用文本方式打开时里面就几行简单的文字,对此很好奇。

经过多番百度,知道了这个是批处理文件,并发现了一个让我沉迷的论坛,批处理之家,从此开启了学习批处理的道路。每天早上趁着还没有其他人用这个有网络的电脑打牌看电视的时候,在之家的资料和教程栏目里将教程打开,粘到txt中,放到U盘(有一次老爸到南京,求着让买的,100块钱1G),然后就带着到没有空调的教师办公室,用没有网络的电脑听着音乐,看着txt,边看边试,就这样乐此不疲一看就是几天。

教程看的差不多了以后就到了新手练功板块,那时候活跃的大佬很多,每天都会出一些题目给新手加分,看着大家用不同的代码完成了有趣的题目很有趣,我也就参与到了做题的行列中。

本文主要是趁着开始搭建博客,记录下当年的这些喜悦时刻。

有一次大佬出了一个排序题,当时对排序算法之类的还没有概念,只知道题目要求将输入的数字排好序输出,想了方法然后调试实现了。之后趁着热乎劲在傍晚吃饭时间校长室没人时,把写好的代码在之家中跟帖提交了。

第二天早上再次登录之家,首先听到了是几声叮咚声,之后便看到了加分的短消息提醒,当时真的很高兴。仅在此将当时的心情和代码。

题目:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
出题目的:
掌握任意数列之间的排序技巧
解题要求:
代码通用、高效
尽量简洁
尽量不生成临时文件
加分规则:
1 思路独特基准分5分
2 代码高效、通用基准分4分
3 技巧高超基准分3分
4 代码简洁基准分2分
5 完美代码加分15分
题目如下:
给出任意一组数列,正序输出,如:
3 2008 11 19 777 23 2014 453 789 51
输出为:3 11 19 23 51 453 777 789 2008 2014
说明:
不必考虑特大数,所给的数列中都是整数值。

冒泡排序方法:

1
2
3
4
5
6
7
8
9
10
11
@echo off&setlocal enabledelayedexpansion
set "p=3 2008 11 19 777 23 2014 453 789 51"
for %%i in (%p%) do (
set t=1
for %%r in (%p%) do (
if %%i gtr %%r set /a t=!t!+1
)
set !t!=%%i
)
echo !1! !2! !3! !4! !5! !6! !7! !8! !9! !10!
pause

CATALOG