public static void Main()
bool[] pumpsEnabled = new bool[maxPumps];
int[] pumpRuntimes = new int[maxPumps];
Console.WriteLine("Sorting Pumps...");
int[] sortedPumps = sortPumps(pumpsEnabled, pumpRuntimes, maxPumps);
Console.WriteLine("Final Sort Order:");
for (int i = 0; i < sortedPumps.Length; i++)
Console.WriteLine(sortedPumps[i]);
public static int[] sortPumps(bool[] pumpsEnabled, int[] pumpRuntimes, int maxPumps)
for (int i = 0; i <= maxPumps - 1; i++)
int[] sortedRuntime = new int[maxPumps];
int[] sortedPlace = new int[maxPumps];
for (int i = 0; i < maxPumps; i++)
sortedRuntime[currentPump] = pumpRuntimes[i];
sortedPlace[currentPump] = 1 + i;
Console.WriteLine("Pre sorting order is:");
for(int i = 0; i <= numPumps - 1; i++) {
Console.WriteLine("Pump " + sortedPlace[i] + " Runtime: " + sortedRuntime[i]);
for (int i = 0; i <= numPumps - 2; i++) {
Console.WriteLine("Outer Loop #" + (i + 1));
for (int j = 0; j <= numPumps - 2 - i; j++) {
Console.WriteLine("Inner Loop #" + (j + 1));
if(sortedRuntime[j] > sortedRuntime[j+1]) {
Console.WriteLine("Pump " + sortedPlace[j+1] + " has lower runtime (" + sortedRuntime[j+1] + ") than Pump " + sortedPlace[j] + " (" + sortedRuntime[j] + ")");
Console.WriteLine("Moving Pump " + sortedPlace[j+1] + " from index " + (j + 1) + " to index " + j);
int temp = sortedRuntime[j+1];
int temp2 = sortedPlace[j+1];
sortedRuntime[j+1] = sortedRuntime[j];
sortedPlace[j+1] = sortedPlace[j];
Console.WriteLine("Post sorting order is:");
for(int i = 0; i <= numPumps -1; i++) {
Console.WriteLine("Pump " + sortedPlace[i] + " Runtime: " + sortedRuntime[i]);
int[] allPumps = new int[maxPumps];
for (int i = 0; i <= numPumps - 1; i++)
allPumps[sortedPlace[i] - 1] = i + 1;