[简单算法]快速排序
bat吧
全部回复
仅看楼主
level 14
John▫Aº 楼主
qsort.bat
____________________________________________
@echo off
setlocal enabledelayedexpansion
setlocal
set k=0
for %%i in (%*) do (
set /a k+=1
set arr.!k!=%%i
)
set arr.length=%k%
call :s arr
for %%i in (%arr.re%) do (
set /p a=%%i <nul
)
echo.
endlocal
exit /b
:s
if !%1.length! lss 2 (
call :return %1
exit /b
)
for /l %%i in (2,1,!%1.length!) do (
if !%1.%%i! leq !%1.1! (
call :push %1.1 !%1.%%i!
) else (
call :push %1.2 !%1.%%i!
)
)
call :s %1.1
call :s %1.2
set %1.re=!%1.1.re! !%1.1! !%1.2.re!
exit /b
:push
set /a %1.length+=1
set %1.!%1.length!=%2
exit /b
:return
if !%1.length!==0 set "%1.re="
for /l %%i in (1,1,!%1.length!) do (
set %1.re=!%1.re! !%1.%%i!
)
exit /b
___________________________________________________
用法:调用qsort+欲排序字符串(用for可接受的符号隔开,如空格和英文逗号)
例如:
qsort 5,2,6,3
qsort f,e,k,c,w,a
qsort 432,567,223,12,456567,213
...
...
...
2017年06月25日 03点06分 1
level 14
John▫Aº 楼主
感觉用bat实现起来好复杂啊,不知各位有没有更简单的非作弊方法?(如用内置的sort命令)
2017年06月25日 03点06分 2
level 14
John▫Aº 楼主
找几个活跃点的@黄田杰 @阿里我的鱼12 @什棉2014
2017年06月25日 03点06分 3
我的名字打错了[喷][滑稽][滑稽]
2017年06月25日 04点06分
level 13
dd
末影人吐槽君:大佬代码完全看不懂系列
2017年06月25日 04点06分 4
quicksort的思想是以数组第一个元素a为参照将其它元素分为小于a和不小于a两组,分别排序,再组合。我是用set arr.1和call的方法实现了bat版伪数组和伪函数调用。
2017年06月25日 06点06分
level 13
把数列作为文件名输出到文件夹,然后获取那个文件夹的文件名?
2017年06月25日 04点06分 5
用非作弊方法[滑稽]
2017年06月25日 05点06分
回复
敖文轩321
:这是纯bat啊[滑稽]
2017年06月25日 10点06分
回复 黄田杰 :sort莫不是纯bat?[滑稽]
2017年06月25日 13点06分
回复
敖文轩321
:外部命令[滑稽]
2017年06月26日 01点06分
level 10
用sort写的,请各大神点评:
@echo off
set /a count=0
rem set /p "str_max_leng=输入不小于字串的最大长度>:"
set /a str_max_leng=30
set "a="
set "b=echo,"
Setlocal enabledelayedexpansion
rem 补位字串的数量
for /l %%i in (1 1 %str_max_leng%) do (
set str_max=,!str_max! )
rem 计算字符数量及补位:
for %%i in (%*) do (
set /a count+=1
set "a=!str_max!%%i"
set "a=!a:~-%str_max_leng%!"
set "a=echo !a!"
set "b=!b!^^&!a!"
)
rem 进行sort排序
set "a="
for /f "delims=," %%i in ('^(!b!^)^|sort') do (
set "a=!a!,%%i"
)
echo 排序结果!a!
echo,
echo,
echo 字符数量为:!count!
goto :eof
2017年06月26日 07点06分 6
自动判断最长字符串会好一些。另外我的意思是自己用算法实现排序而不是sort或通过dir/for/tree获取文件(夹)列表的方式来实现排序
2017年06月26日 07点06分
回复 敖文轩321 :本人算术本不怎么样,单用算法想想都头大,你说的自动计算字串长度,我也想过,想想要判断每个字串长度,效率上还不如直接输入一个大一些的值做补位。
2017年06月26日 08点06分
level 10
批处理调用参数写法与楼主一样
2017年06月26日 07点06分 7
1