at:tutorial:basic
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Next revisionBoth sides next revision | ||
at:tutorial:basic [2007/12/04 15:16] – *Fixed mstevens | at:tutorial:basic [2007/12/28 12:29] – fixed tvcutsem | ||
---|---|---|---|
Line 428: | Line 428: | ||
< | < | ||
>def sort(table, cmp := { |e1,e2| e1 < e2 }) { | >def sort(table, cmp := { |e1,e2| e1 < e2 }) { | ||
- | def quickSort(table, | + | |
- | def left := low; | + | def left := low; |
- | def right := high; | + | def right := high; |
- | def pivot := table[(left+right) /- 2]; | + | def pivot := table[(left+right) /- 2]; |
- | def save := nil; | + | def save := nil; |
- | while: { left <= right } do: { | + | while: { left <= right } do: { |
- | | + | while: { cmp(table[left], |
- | left := left + 1 | + | left := left + 1 |
- | }; | + | }; |
- | | + | while: { cmp(pivot, table[right]) } do: { |
- | right := right - 1 | + | right := right - 1 |
- | }; | + | }; |
- | | + | if: (left <= right) then: { |
- | | + | // swap elements |
- | | + | save := table[left]; |
- | table[left] := table[right]; | + | table[left] := table[right]; |
- | table[right] := save; | + | table[right] := save; |
- | left := left + 1; | + | left := left + 1; |
- | right := right - 1; | + | right := right - 1; |
- | | + | }; |
- | }; | + | }; |
- | if: (low< | + | if: (low< |
- | if: (high> | + | if: (high> |
- | | + | table; |
- | | + | }; |
- | | + | quickSort(table, |
- | }; | + | }; |
>>< | >>< | ||
> | > |
at/tutorial/basic.txt · Last modified: 2020/02/09 22:05 by elisag