Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApp2
- {
- class Program
- {
- static void Main (string[] args)
- {
- List<Vector3> vectors = new List<Vector3> ();
- vectors.Add (new Vector3 (3f, 0f, 0f));
- vectors.Add (new Vector3 (0f, 0f, 0f));
- vectors.Add (new Vector3 (1.5f, 0f, 0f));
- vectors.Add (new Vector3 (3f, 0f, 1.5f));
- vectors.Add (new Vector3 (0f, 0f, 1.5f));
- vectors.Add (new Vector3 (1.5f, 0f, 1.5f));
- TestOrderBy (new List<Vector3> (vectors));
- TestSelectionSort (new List<Vector3> (vectors));
- Console.ReadLine ();
- }
- private static void TestOrderBy (List<Vector3> vectors)
- {
- Console.WriteLine ("OrderBy");
- Console.WriteLine ("-----------------------");
- vectors = vectors.OrderBy (i => i.X).ToList ();
- vectors = vectors.OrderBy (i => i.Z).ToList ();
- vectors = vectors.OrderBy (i => i.Y).ToList ();
- for (int i = 0; i < vectors.Count; i++)
- Console.WriteLine (vectors[i].ToString ());
- Console.WriteLine ();
- }
- private static void TestSelectionSort (List<Vector3> vectors)
- {
- Console.WriteLine ("SelectionSort");
- Console.WriteLine ("-----------------------");
- vectors = SelectionSort (vectors, (t1, t2) => t1.X < t2.X);
- vectors = SelectionSort (vectors, (t1, t2) => t1.Z < t2.Z);
- vectors = SelectionSort (vectors, (t1, t2) => t1.Y < t2.Y);
- for (int i = 0; i < vectors.Count; i++)
- Console.WriteLine (vectors[i].ToString ());
- Console.WriteLine ();
- }
- public static List<Vector3> SelectionSort (List<Vector3> arr, System.Func<Vector3, Vector3, bool> comparator)
- {
- int min;
- Vector3 temp;
- int length = arr.Count;
- arr = new List<Vector3> (arr);
- for (int i = 0; i < length - 1; i++)
- {
- min = i;
- for (int j = i + 1; j < length; j++)
- {
- if (comparator (arr[j], arr[min]))
- {
- min = j;
- }
- }
- if (min != i)
- {
- temp = arr[i];
- arr[i] = arr[min];
- arr[min] = temp;
- }
- }
- return arr;
- }
- }
- public class Vector3
- {
- public float X;
- public float Y;
- public float Z;
- public override string ToString ()
- {
- return string.Format ("{0,-4} {1,-4} {2,-4}", X, Y, Z);
- }
- public Vector3 (float x, float y, float z)
- {
- X = x;
- Y = y;
- Z = z;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment