The SDL Component Suite is an industry leading collection of components supporting scientific and engineering computing. Please visit the SDL Web site for more information....


Class:TMatrix, TIntMatrix
Declaration:procedure SortRows (SortColIx: integer; Ascending: boolean; LowCol, LowRow, HighCol, HighRow: integer);

The method SortRows provides a means to sort the rows of a matrix, or part of it, according to the values in a single column. This column is indexed by the parameter SortColIx. The matrix is sorted row by row within the range [LowCol,LowRow] to [HighCol,HighRow]. The values outside this range are not affected (except for the column addressed by SortColIx ). The sorting order is determined by the column SortColIdx which is also sorted within the range [LowRow, HighRow ]. The parameter Ascending specifies whether the valus are to be sorted in ascending (TRUE) or descending (FALSE) order.

The event OnSortExchange is generated whenever two rows have to be exchanged during the sorting process. The sorting is performed by a modified bubble sort (CombSort), which has been reported to be comparable in speed to QuickSort (see also R.Box, S. Lacey, BYTE magazine, April 1991).

Hint 1: The values of the column SortColIx are always sorted, even if this column is outside the specified sort range [LowCol, HighCol

Hint 2: Setting both the low and high parameter of a dimension (i.e. LowCol and HighCol) to zero values forces the method to use all elements of that dimension.

Example: The statement M1.SortRows (10, true, 1, 1, M1.NrOfColumns, M1.NrOfRows) sorts the whole matrix M1 according to the values in column 10.

Last Update: 2012-Oct-20