Exemplo n.º 1
0
 public double OdlegloscDoPunktu(Punkt p)
 {
     return(Math.Sqrt(Math.Pow(p.X - X, 2) + Math.Pow(p.Y - Y, 2)));
 }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            const int   N         = 30;
            const float maxWeight = 4.0f;
            float       sumWag    = 0.0f;
            float       sumPoint  = 0.0f;

            //            Punkt[] punkts = new Punkt[N]
            //            {
            //                new Punkt(0.35f,7.07f), new Punkt(0.35f,7.07f),new Punkt(0.35f,7.07f), new Punkt(0.35f,7.07f),new Punkt(0.35f,7.07f), new Punkt(0.33f,1.67f),new Punkt(0.35f,7.07f), new Punkt(0.25f,3.75f),
            //new Punkt(0.50f,2.50f), new Punkt(0.25f,3.75f),new Punkt(0.58f,11.55f), new Punkt(0.71f,14.14f),new Punkt(0.50f,5.00f), new Punkt(0.20f,2.00f),new Punkt(0.33f,5.00f), new Punkt(0.33f,10.0f),
            //new Punkt(0.25f,1.25f), new Punkt(0.33f,1.67f),new Punkt(0.29f,5.77f), new Punkt(0.29f,5.77f),new Punkt(0.41f,16.33f), new Punkt(0.41f,16.33f),new Punkt(0.71f,28.28f)

            //            };

            Punkt[] punkts = new Punkt[N]
            {
                new Punkt(0.35f, 7.07f), new Punkt(0.35f, 7.07f), new Punkt(0.35f, 7.07f), new Punkt(0.35f, 7.07f), new Punkt(0.35f, 7.07f), new Punkt(0.33f, 1.67f), new Punkt(0.35f, 7.07f), new Punkt(0.25f, 3.75f),
                new Punkt(0.50f, 2.50f), new Punkt(0.25f, 3.75f), new Punkt(0.58f, 11.55f), new Punkt(0.71f, 14.14f), new Punkt(0.50f, 5.00f), new Punkt(0.20f, 2.00f), new Punkt(0.33f, 5.00f), new Punkt(0.33f, 10.0f),
                new Punkt(0.25f, 1.25f), new Punkt(0.33f, 1.67f), new Punkt(0.29f, 5.77f), new Punkt(0.29f, 5.77f), new Punkt(0.41f, 16.33f), new Punkt(0.41f, 16.33f), new Punkt(0.71f, 28.28f), new Punkt(0.25f, 1.25f), new Punkt(0.33f, 1.67f), new Punkt(0.29f, 5.77f), new Punkt(0.29f, 5.77f), new Punkt(0.41f, 16.33f), new Punkt(0.41f, 16.33f), new Punkt(0.71f, 28.28f)
            };

            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();
            //sortowanie
            int n = punkts.Length;

            do
            {
                for (int i = 0; i < n - 1; i++)
                {
                    if (punkts[i].point < punkts[i + 1].point)
                    {
                        Punkt tmp = punkts[i];
                        punkts[i]     = punkts[i + 1];
                        punkts[i + 1] = tmp;
                    }
                }
                n--;
            }while (n > 1);

            n = punkts.Length;
            do
            {
                for (int i = 0; i < n - 1; i++)
                {
                    if (punkts[i].waga < punkts[i + 1].waga)
                    {
                        Punkt tmp = punkts[i];
                        punkts[i]     = punkts[i + 1];
                        punkts[i + 1] = tmp;
                    }
                }
                n--;
            }while (n > 1);

            bruteforce(punkts, maxWeight);
            stopwatch.Stop();

            Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds);
        }