- @echo off|| 希尔排序练习
- setlocal enabledelayedexpansion
- ::获得256个随机数
- set n=255&for /l %%a in (0 1 !n!)do set/a a[%%a]=!random!
-
- ::获取制表符
- for /f "delims=U" %%a in ('cmd/u/cecho 唉')do set tab=%%a
-
- set x=0
- for /l %%a in (0 1 %n%)do (
- set/p=!a[%%a]!!tab!<nul&set/a x+=1,y=x%%8&if !y!==0 echo;
- )
- echo;---------------
-
- call:shellsort a n
-
- set x=0
- for /l %%a in (0 1 %n%)do (
- set/p=!a[%%a]!!tab!<nul&set/a x+=1,y=x%%8&if !y!==0 echo;
- )
- pause
-
- :shellsort <arrname> <arrsize> // code by plp
- for %%a in (132 57 23 9 4 1)do (
- for /l %%b in (%%a 1 !%2!)do (set/a x=%%b-%%a
- for /l %%c in (!x! -%%a 0)do (set/a jj=%%c+%%a
- for /f "tokens=1-2" %%A in ("a[%%c] a[!jj!] ")do (
- if !%%A! gtr !%%B! set/ap=%1[%%c],%1[%%c]=%1[!jj!],%1[!jj!]=p
- )
- )
- )
- )
- goto:eof
复制代码
|