[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

我试试

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::先排序,再按尾数取
  4. ::第一步构建一维数组,并给每个元数武值
  5. for /f "delims=*" %%i in (a.txt) do (
  6.   for %%j in (%%i) do (
  7.       set /a n+=1&set _!n!=%%j
  8. )
  9. )
  10. ::用选择法排序
  11. rem echo %n%
  12. for /l %%i in (1,1,%n%) do (
  13.   set /a m=%%i+1
  14.   for /l %%j in (!m!,1,%n%) do (
  15.        if !_%%i! gtr !_%%j! (
  16.             set /a t=_%%i
  17.             set /a _%%i=!_%%j!
  18.             set /a _%%j=t  
  19. )
  20. )
  21. )
  22. ::按尾数取
  23. for /l %%i in (1,1,%n%) do (
  24.      for /l %%j in (0,1,9) do (
  25.        if !_%%i:~-1! ==%%j set a_%%j=!a_%%j! !_%%i!
  26. )
  27. )
  28. ::输出
  29. for /l %%k in (0,1,9) do (
  30. if !a_%%k! neq 0 echo %%k  !a_%%k!
  31. )
  32. rem set a_
  33. rem set _
  34. pause>nul
复制代码
缺点是建一维数组时变量过多,优点是易读易写

TOP

to:随风

随风的贴子测了一下,不能运行,可能和我的win2000系统有关

[ 本帖最后由 tyc 于 2009-4-15 09:33 编辑 ]

TOP

谢batcher,虽然用sort,或set变量名进行排序很妙,但传统的排序更有意思,比如选择法,插入法,快速法,堆排序等七种,我水平有限,有些排序的写法写不出来!

TOP

返回列表