home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 September
/
Simtel20_Sept92.cdr
/
msdos
/
editor
/
me_cd.arc
/
SORT.MUT
< prev
next >
Wrap
Text File
|
1988-03-01
|
937b
|
42 lines
(defun
sort (array int list 1)(int n) ; shell sort an array of n ints
{
(int gap i j t k)
(gap (/ n 2))
(while (> gap 0)
{
(i gap)
(while (< i n)
{
(j (- i gap))
(while (and (>= j 0) (> (list j)(list (+ j gap))))
{
(k (+ j gap))(t (list j))(list j (list k))(list k t)
(-= j gap)
})
(+= i 1)
})
(/= gap 2)
})
}
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;; test ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(include random.mut)
(array int list 501) (int n j)
(n (atoi (ask "n = ")))
(for (j 0) (< j n)(+= j 1) (list j (rand)))
(for (j 0)(< j n)(+= j 1) (msg "list[" j "] = " (list j)))
(sort list n)
(msg "--------------------------")
(for (j 0)(< j n)(+= j 1) (msg "list[" j "] = " (list j)))