Sorting algorithms/Comb sort: Difference between revisions

m (→‎{{header|REXX}}: changed comments and indentations, reduce output fence by one byte. -- ~~~~.)
Line 1,248:
[0, 4, 5, 8, 14, 18, 20, 31, 33, 44, 62, 70, 73, 75, 76, 78, 81, 82, 84, 88]
>>> </lang>
 
=={{header|Racket}}==
<lang racket>
#lang racket
(require (only-in srfi/43 vector-swap!))
 
(define (comb-sort xs)
(define (ref i) (vector-ref xs i))
(define (swap i j) (vector-swap! xs i j))
(define size (vector-length xs))
(let loop ([old-gap size] [swaps 0])
(unless (and (= old-gap 1) (= swaps 0))
(define gap (max 1 (exact-floor (/ old-gap 1.25))))
(displayln gap)
(loop gap
(for/fold ([swaps 0]) ([i (in-range 0 (- size gap))])
(cond
[(> (ref i) (ref (+ i gap)))
(swap i (+ i gap))
(+ swaps 1)]
[swaps])))))
xs)
</lang>
 
=={{header|REXX}}==
Anonymous user