MCPcopy Create free account
hub / github.com/OpenSourcePhysics/osp / merge

Method merge

src/org/opensourcephysics/numerics/ArrayLib.java:617–642  ·  view source on GitHub ↗
(int[] a, double[] b, int p, int q, int r)

Source from the content-addressed store, hash-verified

615 }
616
617 protected static final void merge(int[] a, double[] b, int p, int q, int r) {
618 int[] t = new int[r - p + 1];
619 double[] v = new double[r - p + 1];
620 int i, p1 = p, p2 = q + 1;
621 for (i = 0; p1 <= q && p2 <= r; ++i) {
622 if (a[p1] < a[p2]) {
623 v[i] = b[p1];
624 t[i] = a[p1++];
625 } else {
626 v[i] = b[p2];
627 t[i] = a[p2++];
628 }
629 }
630 for (; p1 <= q; ++p1, ++i) {
631 v[i] = b[p1];
632 t[i] = a[p1];
633 }
634 for (; p2 <= r; ++p2, ++i) {
635 v[i] = b[p2];
636 t[i] = a[p2];
637 }
638 for (i = 0, p1 = p; i < t.length; ++i, ++p1) {
639 b[p1] = v[i];
640 a[p1] = t[i];
641 }
642 }
643
644 // -- int / int sorting ---------------------------------------------
645

Callers 1

mergesortMethod · 0.95

Calls 1

compareMethod · 0.45

Tested by

no test coverage detected