merge<T extends Comparable<Object>> function

List<T> merge<T extends Comparable<Object>>(
  1. List<T> a,
  2. List<T> b
)

Merges two sorted arrays into a single sorted array.

Implementation

List<T> merge<T extends Comparable<Object>>(List<T> a, List<T> b) {
  final result = <T>[];
  int i = 0, j = 0;

  while (i < a.length && j < b.length) {
    if (a[i].compareTo(b[j]) <= 0) {
      result.add(a[i++]);
    } else {
      result.add(b[j++]);
    }
  }

  while (i < a.length) {
    result.add(a[i++]);
  }
  while (j < b.length) {
    result.add(b[j++]);
  }

  return result;
}