Scilab Function
Last update : April 1993

gsort - decreasing order sorting

### Calling Sequence

  `[s, [k]]=gsort(v )`
  `[s, [k]]=gsort(v,flag1)`
  `[s, [k]]=gsort(v,flag1,flag2)`

### Parameters

- `v,s`: real vector/matrix; character string vector/matrix
- `flag1`: a string `'r'`, `'c'`,`'g'`,`'lr'` and `'lc'`.
- `flag2`: a string `'i'` for increasing and `'d'` for decreasing order. k : vector or matrix of integers

### Description

`gsort` is similar to `sort` with additional properties. The third argument can be used to chose between increasing or decreasing order. The second argument can be used for lexical orders.

`[s,k]=gsort(a,'g')` and `[s,k]=gsort(a,'g','d')` are the same as `[s,k]=gsort(a)`. They perform a sort of the entries of matrix `a`, `a` being seen as the stacked vector `a(:)` (columnwise). `[s,k]=gsort(a,'g','i')` performs the same operation but in increasing order.

`[s,k]=gsort(a,'lr')` sort the rows of the matrix `int(a)` ( if `a` is a real matrix) or `a` (if `a` is a character string matrix) in lexical decreasing order. `s` is obtained by a permutation of the rows of matrix `int(a)` (or `a`) given by the column vector `k`) in such a way that the rows of `s` verify `s(i,:) > s(j,:)` if `i<j`. `[s,k]=gsort(a,'lr','i')` performs the same operation for increasing lexical order

`[s,k]=gsort(a,'lc')` sort the columns of the matrix `int(a)` ( if `a` is a real matrix) or `a` (if `a` is a character string matrix) in lexical decreasing order. `s` is obtained by a permutation of the columns of matrix `int(a)` (or `a`) given by the row vector `k`) in such a way that the columns of `s` verify `s(:,i) > s(:,j)` if `i<j`. `[s,k]=gsort(a,'lc','i')` performs the same operation for increasing lexical order

### Examples

    alr=[1,2,2;
         1,2,1;
         1,1,2;
         1,1,1];
    [alr1,k]=gsort(alr,'lr','i')
    [alr1,k]=gsort(alr,'lc','i')

### See Also

`find`,