Any reviews/ways to speed up/general improvements for my Merge Sort? Maybe something to simplify it or add more to it?
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace prjT02L08_Predator_Prey { abstract class MergeSort { public static List<Node> Sort(List<Node> input) { List<Node> Result = new List<Node>(); List<Node> Left = new List<Node>(); List<Node> Right = new List<Node>(); if (input.Count <= 1) return input; int midpoint = input.Count / 2; for (int i = 0; i < midpoint; i++) Left.Add(input[i]); for (int i = midpoint; i < input.Count; i++) Right.Add(input[i]); Left = Sort(Left); //Recursion! :o Right = Sort(Right); Result = Merge(Left, Right); return Result; } private static List<Node> Merge(List<Node> Left, List<Node> Right) { List<Node> Result = new List<Node>(); while (Left.Count > 0 && Right.Count > 0) { if (Left[0].F < Right[0].F) { Result.Add(Left[0]); Left.RemoveAt(0); } else { Result.Add(Right[0]); Right.RemoveAt(0); } } while (Left.Count > 0) { Result.Add(Left[0]); Left.RemoveAt(0); } while (Right.Count > 0) { Result.Add(Right[0]); Right.RemoveAt(0); } return Result; } } }