Guest User

Untitled

a guest
Dec 19th, 2019
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.04 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApp2
  8. {
  9.     class Program
  10.     {
  11.         static void Main (string[] args)
  12.         {
  13.             List<Vector3> vectors = new List<Vector3> ();
  14.             vectors.Add (new Vector3 (3f, 0f, 0f));
  15.             vectors.Add (new Vector3 (0f, 0f, 0f));
  16.             vectors.Add (new Vector3 (1.5f, 0f, 0f));
  17.             vectors.Add (new Vector3 (3f, 0f, 1.5f));
  18.             vectors.Add (new Vector3 (0f, 0f, 1.5f));
  19.             vectors.Add (new Vector3 (1.5f, 0f, 1.5f));
  20.  
  21.             TestOrderBy (new List<Vector3> (vectors));
  22.  
  23.             TestSelectionSort (new List<Vector3> (vectors));
  24.  
  25.             Console.ReadLine ();
  26.         }
  27.  
  28.         private static void TestOrderBy (List<Vector3> vectors)
  29.         {
  30.             Console.WriteLine ("OrderBy");
  31.             Console.WriteLine ("-----------------------");
  32.  
  33.             vectors = vectors.OrderBy (i => i.X).ToList ();
  34.             vectors = vectors.OrderBy (i => i.Z).ToList ();
  35.             vectors = vectors.OrderBy (i => i.Y).ToList ();
  36.  
  37.             for (int i = 0; i < vectors.Count; i++)
  38.                 Console.WriteLine (vectors[i].ToString ());
  39.  
  40.             Console.WriteLine ();
  41.         }
  42.  
  43.         private static void TestSelectionSort (List<Vector3> vectors)
  44.         {
  45.             Console.WriteLine ("SelectionSort");
  46.             Console.WriteLine ("-----------------------");
  47.  
  48.             vectors = SelectionSort (vectors, (t1, t2) => t1.X < t2.X);
  49.             vectors = SelectionSort (vectors, (t1, t2) => t1.Z < t2.Z);
  50.             vectors = SelectionSort (vectors, (t1, t2) => t1.Y < t2.Y);
  51.  
  52.             for (int i = 0; i < vectors.Count; i++)
  53.                 Console.WriteLine (vectors[i].ToString ());
  54.  
  55.             Console.WriteLine ();
  56.         }
  57.  
  58.         public static List<Vector3> SelectionSort (List<Vector3> arr, System.Func<Vector3, Vector3, bool> comparator)
  59.         {
  60.             int min;
  61.             Vector3 temp;
  62.             int length = arr.Count;
  63.  
  64.             arr = new List<Vector3> (arr);
  65.  
  66.             for (int i = 0; i < length - 1; i++)
  67.             {
  68.                 min = i;
  69.  
  70.                 for (int j = i + 1; j < length; j++)
  71.                 {
  72.                     if (comparator (arr[j], arr[min]))
  73.                     {
  74.                         min = j;
  75.                     }
  76.                 }
  77.  
  78.                 if (min != i)
  79.                 {
  80.                     temp = arr[i];
  81.                     arr[i] = arr[min];
  82.                     arr[min] = temp;
  83.                 }
  84.             }
  85.  
  86.             return arr;
  87.         }
  88.     }
  89.  
  90.     public class Vector3
  91.     {
  92.         public float X;
  93.         public float Y;
  94.         public float Z;
  95.  
  96.         public override string ToString ()
  97.         {
  98.             return string.Format ("{0,-4} {1,-4} {2,-4}", X, Y, Z);
  99.         }
  100.  
  101.         public Vector3 (float x, float y, float z)
  102.         {
  103.             X = x;
  104.             Y = y;
  105.             Z = z;
  106.         }
  107.     }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment