Exemplo n.º 1
0
        public ClosestPairDTO ClosestPairBUS(List <Point> p)
        {
            if (p.Count < 2)
            {
                return(null);
            }
            ClosestPairDTO m = new ClosestPairDTO();

            m.distance = double.MaxValue;
            double temp;

            for (int x = 0; x < p.Count - 1; x++)
            {
                for (int y = x + 1; y < p.Count; y++)
                {
                    temp = CalculateDistance(p[x], p[y]);
                    if (temp < m.distance)
                    {
                        m.distance = temp;
                        m.p1       = p[x];
                        m.p2       = p[y];
                    }
                }
            }
            return(m);
        }
Exemplo n.º 2
0
        private void btnTim_Click(object sender, EventArgs e)
        {
            Read();
            Display();
            ClosestPair    findmin = new ClosestPair();
            ClosestPairDTO min     = new ClosestPairDTO();

            min             = findmin.ClosestPairBUS(p);
            lbPoints.Text   = "(" + min.p1.X + "," + min.p1.Y + ")" + " và (" + min.p2.X + "," + min.p2.Y + ")";
            lbDistance.Text = min.distance.ToString();
        }