Package org.apache.sysds.runtime.util

# Class SortUtils

java.lang.Object
org.apache.sysds.runtime.util.SortUtils

public class SortUtils extends Object
Utilities for sorting, primarily used for SparseRows.

## Constructor Summary

Constructors
Constructor
Description
`SortUtils()`

## Method Summary

Modifier and Type
Method
Description
`static int`
`compare(double[] d1, double[] d2)`
`static boolean`
`isSorted(int start, int end, double[] values)`
`static boolean`
`isSorted(int start, int end, int[] indexes)`
`static boolean`
`isSorted(MatrixBlock in)`
`static void`
`sortByIndex(int start, int end, int[] indexes, double[] values)`
In-place sort of two arrays, only indexes is used for comparison and values of same position are sorted accordingly.
`static void`
`sortByIndex(int start, int end, int[] indexes, int[] indexes2, double[] values)`
In-place sort of three arrays, only first indexes is used for comparison and second indexes as well as values of same position are sorted accordingly.
`static void`
`sortByValue(int start, int end, double[] values, int[] indexes)`
`static void`
`sortByValueStable(int start, int end, double[] values, int[] indexes)`
In-place sort of two arrays, only indexes is used for comparison and values of same position are sorted accordingly.

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### SortUtils

public SortUtils()

## Method Details

### isSorted

public static boolean isSorted(int start, int end, int[] indexes)

### isSorted

public static boolean isSorted(int start, int end, double[] values)

### isSorted

public static boolean isSorted(MatrixBlock in)

### compare

public static int compare(double[] d1, double[] d2)

### sortByIndex

public static void sortByIndex(int start, int end, int[] indexes, double[] values)
In-place sort of two arrays, only indexes is used for comparison and values of same position are sorted accordingly.

Parameters:
  `start` - starting index
  `end` - ending index
  `indexes` - array of indexes to sort by
  `values` - double array of values to sort

### sortByIndex

public static void sortByIndex(int start, int end, int[] indexes, int[] indexes2, double[] values)
In-place sort of three arrays, only first indexes is used for comparison and second indexes as well as values of same position are sorted accordingly.

Parameters:
  `start` - starting index
  `end` - ending index
  `indexes` - ?
  `indexes2` - ?
  `values` - ?

### sortByValue

public static void sortByValue(int start, int end, double[] values, int[] indexes)

### sortByValueStable

public static void sortByValueStable(int start, int end, double[] values, int[] indexes)
In-place sort of two arrays, only indexes is used for comparison and values of same position are sorted accordingly.

Parameters:
  `start` - start index
  `end` - end index
  `values` - double array of values to sort
  `indexes` - int array of indexes to sort by