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

[数值计算] 本人感觉批处理冒泡排序法比sort效率高

本帖最后由 applba 于 2011-4-26 10:57 编辑

这个代码是昨天晚上捣鼓出来的,感觉效果还不错……

1000个排序也是瞬间,10000个开始卡了,估计是查询变量耗时严重了
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. rem 默认产生100个随机数
  4. set n=100
  5. for /l %%i in (1,1,!n!) do set /a _%%i=!random!+1
  6. rem 开始排序并输出结果
  7. for /l %%i in (1,1,!n!) do (
  8.         for /l %%j in (%%i+1,1,!n!) do (
  9.                 if !_%%i! gtr !_%%j! (
  10.                         set var=!_%%i!
  11.                         set _%%i=!_%%j!
  12.                         set _%%j=!var!
  13.                 )        
  14.         )
  15. echo !_%%i!
  16. )
  17. pause
复制代码

2# Batcher


真的不靠谱呀。

看来还是自带命令效率高。

但是sort排序需要统一数字位数……………………

TOP

本帖最后由 applba 于 2011-4-26 23:00 编辑

有问题了,编辑中

TOP

汗,+1确实失效了。

不过这对结果没有影响,效率上就差了点。

正常的比较次数是n(n-1)/2,而这样后成了n(n+1)/2。

TOP

本帖最后由 applba 于 2011-4-27 13:02 编辑

set a=00000%%a&&set _!a:~-5!=%%a

你写5个0我明白了,超级版主的10个0一下子把我蒙了……

感情这set也是个不错的东西,居然还能这样用,你们真是太油菜了……

TOP

15# terse


这样不需要考虑字符串限制吗?
我当初就是因为这个而放弃了set str=!str! !random!

TOP

17# terse


开启变量延迟后需要中间变量才能交换把?

还是有新方法?

TOP

返回列表