]> gitweb.factorcode.org Git - factor.git/commitdiff
sorting.bubble: loop up to last changed index.
authorJohn Benediktsson <mrjbq7@gmail.com>
Sun, 30 Nov 2014 02:36:46 +0000 (18:36 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sun, 30 Nov 2014 02:36:46 +0000 (18:36 -0800)
extra/sorting/bubble/bubble.factor

index 3caa6c6fa29c358bf9a6bae4d2f007a34649d013..1099a05f3732e78d284069d7f4c7db4f251dcc87 100644 (file)
@@ -9,10 +9,10 @@ IN: sorting.bubble
 <PRIVATE
 
 :: (bubble-sort!) ( seq quot: ( obj1 obj2 -- <=> ) -- )
-    seq length [
-        1 - f over [0,b) [| i |
+    seq length 1 - [
+        f over [0,b) [| i |
             i i 1 + [ seq nth-unsafe ] bi@ 2dup quot call +gt+ =
-            [ i 1 + i [ seq set-nth-unsafe ] bi-curry@ bi* drop t ]
+            [ i 1 + i [ seq set-nth-unsafe ] bi-curry@ bi* 2drop i t ]
             [ 2drop ] if
         ] each
     ] loop drop ; inline