Sorting algorithms/Bubble sort: Difference between revisions

no edit summary
m (→‎{{header|Sidef}}: updated code)
No edit summary
Line 534:
-31 0 1 2 2 4 65 83 99 782
</pre>
 
=={{header|Batch File}}==
<lang windowsnt>
@echo off & setlocal enabledelayedexpansion
 
:: Bubble Sort for batch/cmd: Michael Sanders - 2017
::
:: usage: bsort cb321a
:: output: 123abc
::
:: default is sort acending [a-z]
:: to sort descending [z-a]...
::
:: change: if defined b if !a! gtr !b!
:: to: if defined b if !a! lss !b!
::
:: collating order...
::
:: 32 SPC 37 % 42 * 47 / 52 4
:: 33 ! 38 & 43 + 48 0 53 5
:: 34 " 39 ' 44 , 49 1 54 6
:: 35 # 40 ( 45 - 50 2 55 7
:: 36 $ 41 ) 46 . 51 3 56 8
::
:: 57 9 62 > 67 C 72 H 77 M
:: 58 : 63 ? 68 D 73 I 78 N
:: 59 ; 64 @ 69 E 74 J 79 O
:: 60 < 65 A 70 F 75 K 80 P
:: 61 = 66 B 71 G 76 L 81 Q
::
:: 82 R 87 W 92 \ 97 a 102 f
:: 83 S 88 X 93 ] 98 b 103 g
:: 84 T 89 Y 94 ^ 99 c 104 h
:: 85 U 90 Z 95 _ 100 d 105 i
:: 86 V 91 [ 96 ` 101 e 106 j
::
:: 107 k 112 p 117 u 122 z 127 DEL
:: 108 l 113 q 118 v 123 {
:: 109 m 114 r 119 w 124 |
:: 110 n 115 s 120 x 125 }
:: 111 o 116 t 121 y 126 ~
 
:setup
 
set unsorted=%*
set buf=%unsorted%
set len=0
 
:getlength
 
if not defined buf goto :split
set buf=%buf:~1%
set /a len+=1
goto :getlength
 
:split
 
if %len% leq 0 (echo bubble sort: zero length string & exit /b 1)
set /a len-=1
for /l %%x in (0,1,!len!) do set u[%%x]=!unsorted:~%%x,1!
 
:bubblesort
 
set c=0
for /l %%x in (0,1,%len%) do (
set /a p=%%x+1
call set a=!u[%%x]!
call set b=%%u[!p!]%%
if defined b if !a! gtr !b! (
set u[!p!]=!a!
set u[%%x]=!b!
set c=1
)
)
if !c!==1 goto :bubblesort
 
:done
 
for /l %%x in (0,1,!len!) do set sorted=!sorted!!u[%%x]!
echo. & echo unsorted input: !unsorted!
echo. & echo sorted output: !sorted!
endlocal & exit /b 0
 
:eof
</lang>
 
=={{header|C}}==
Anonymous user