
Sorting Algorithm

This is a sorting algorithm.   It may be applied to a set of data in order to sort it.    
For comparing various sorts, see compare sorts.  
For other sorting algorithms,   see sorting algorithms,   or:

O(n logn) sorts
Heap sort |
Merge sort |
Patience sort |
Quick sort
O(n log2n) sorts
Shell Sort
O(n2) sorts
Bubble sort |
Cocktail sort |
Cocktail sort with shifting bounds |
Comb sort |
Cycle sort |
Gnome sort |
Insertion sort |
Selection sort |
Strand sort
other sorts
Bead sort |
Bogo sort |
Common sorted list |
Composite structures sort |
Custom comparator sort |
Counting sort |
Disjoint sublist sort |
External sort |
Jort sort |
Lexicographical sort |
Natural sorting |
Order by pair comparisons |
Order disjoint list items |
Order two numerical lists |
Object identifier (OID) sort |
Pancake sort |
Quickselect |
Permutation sort |
Radix sort |
Ranking methods |
Remove duplicate elements |
Sleep sort |
Stooge sort |
[Sort letters of a string] |
Three variable sort |
Topological sort |
Tree sort


Task

Given an integer   n,   return   1──►n   (inclusive)   in lexicographical order.



Show all output here on this page.



Example

Given   13,

return:   [1,10,11,12,13,2,3,4,5,6,7,8,9].

 
Module Checkit {
      Function lexicographical(N) {
            const nl$=Chr$(13)+Chr$(10)
            If N<>0 then {
                  if N=1 then =(1,) : Exit
                  Document A$
                  For k=1 to N-1 
                        A$=Str$(k,"")+{
                        }
                  Next k
                  A$=Str$(N,"")
                  Method A$, "SetBinaryCompare"
                  Sort A$
                  Flush
                  \\ convert strings to numbers in one statement
                  \\ in stack of values
                  Data Param(Replace$(nl$,",", a$))
                  \\ return stack as array 
                  =Array([])
            }  else =(0,)   ' empty array
      }
      Print lexicographical(5)  ' 1 2 3 4 5
      Print lexicographical(13) ' 1 10 11 12 13 2 3 4 5 6 7 8 9
      Print lexicographical(21) ' 1 10 11 12 13 14 15 16 17 18 19 2 20 21 3 4 5 6 7 8 9
      Print lexicographical(-22) ' -1 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -2 -20 -21 -22 -3 -4 -5 -6 -7 -8 -9 0 1
}
Checkit
Module Checkit {
      Function lexicographical$(N) {
            const nl$=Chr$(13)+Chr$(10)
            If N<>0 then {
                  if N=1 then =(1,) : Exit
                  Document A$
                  For k=1 to N-1 
                        A$=Str$(k,"")+{
                        }
                  Next k
                  A$=Str$(N,"")
                  \\ by default id TextCompare, so 0 an 1 comes first in -22
                  Method A$, "SetBinaryCompare"
                  Sort A$
                  Flush
                  ="["+Replace$(nl$," ", a$)+"]"
 
            }  else =("",)   ' empty array
      }
      Print lexicographical$(5)  ' [1 2 3 4 5]
      Print lexicographical$(13) ' [1 10 11 12 13 2 3 4 5 6 7 8 9]
      Print lexicographical$(21) '[1 10 11 12 13 14 15 16 17 18 19 2 20 21 3 4 5 6 7 8 9]
      Print lexicographical$(-22) ' [-1 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -2 -20 -21 -22 -3 -4 -5 -6 -7 -8 -9 0 1]
}
Checkit
 