private static void paintInvariants( Graphics g, int size, SortingAlgorithm sortAlgorithm, int ulcx, int ulcy, int width, int height) { int nv = sortAlgorithm.getNumInvariants(); for (int i = 0; i < nv; i++) { paintInvariant(g, sortAlgorithm.getInvariant(i), size, ulcx, ulcy, width, height); } }
public static void paintSortState( Graphics g, SortingAlgorithm sortAlgorithm, int ulcx, int ulcy, int width, int height) { int s = sortAlgorithm.getSize(); for (int i = 0; i < s; i++) { int item = sortAlgorithm.getItem(i); paintItem(g, i, item, s, Color.BLUE, ulcx, ulcy, width, height); } SortAction sa = sortAlgorithm.getNextAction(); if (sa != null) { if (sa instanceof SwapAction) { SwapAction swap = (SwapAction) sa; paintItem( g, swap.getA(), sortAlgorithm.getItem(swap.getA()), s, Color.RED, ulcx, ulcy, width, height); paintItem( g, swap.getB(), sortAlgorithm.getItem(swap.getB()), s, Color.RED, ulcx, ulcy, width, height); } else if (sa instanceof CompareAction) { CompareAction comp = (CompareAction) sa; paintItem( g, comp.getA(), sortAlgorithm.getItem(comp.getA()), s, Color.GREEN, ulcx, ulcy, width, height); paintItem( g, comp.getB(), sortAlgorithm.getItem(comp.getB()), s, Color.GREEN, ulcx, ulcy, width, height); } } long numCompares = sortAlgorithm.getNumCompares(); long numSwaps = sortAlgorithm.getNumSwaps(); g.setColor(Color.BLACK); // g.drawString( "compares: " + numCompares, 50, 50 ); g.drawString( "compares:" + numCompares, (int) (ulcx + width / 16.0), (int) (ulcy + height / 12.0)); g.drawString("swaps: " + numSwaps, (int) (ulcx + width / 16.0), (int) (ulcy + height / 6.0)); paintInvariants(g, s, sortAlgorithm, ulcx, ulcy, width, height); }