using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace AlgorithmCollection { public static partial class Algorithms { public static void Swap(ref T v1, ref T v2) { T temp = v1; v1 = v2; v2 = temp; } public static void Swap(ref IList data, int i1, int i2) { T temp = data[i1]; data[i1] = data[i2]; data[i2] = temp; } public static void Swap(ref List data, int i1, int i2) { T temp = data[i1]; data[i1] = data[i2]; data[i2] = temp; } public static void Swap(ref T[] data, int i1, int i2) { T temp = data[i1]; data[i1] = data[i2]; data[i2] = temp; } // 阶乘 public static int Factorial(int n) { if (n == 1) return 1; return n * Factorial(n - 1); } public static T Min(T v1, T v2) where T : IComparable { return v1.CompareTo(v2) < 0 ? v1 : v2; } public static T Max(T v1, T v2) where T : IComparable { return v1.CompareTo(v2) > 0 ? v1 : v2; } public static string ListToString(List data) { string content = ""; //data.ForEach((T v) => { content += v.ToString(); }); for(int i = 0; i < data.Count; ++i) { content += data[i]; if (i != data.Count - 1) content += ","; } return content; } } }