private void buttonTest_Click(object sender, EventArgs e)//测试 { #region /* * string str = "a.1(2.5,4.3)"; * stringinstance o=new stringinstance(); * o.splitinstance(".","(",",",")",str); * string m = ""; * for (int i = 0; i < o.splitinstance(".", "(", ",", ")", str).count; i++) * { * * m=o.splitinstance(".", "(", ",", ")", str)[i]; //----这就是你要的结果 * messagebox.show(m); * } */ #endregion//测试字符串分割实例 //StringInstance s = new StringInstance(); //string str = "12,13,15,16"; //string[] ti = { "," }; //for (int i = 0; i < s.SplitString1(str, ',').Count; i++) //{ // MessageBox.Show(s.SplitString1(str, ',')[i]); //} List <SortedSet <int> > list = new List <SortedSet <int> >(); //装实例表 List <SortedSet <int> > listPA = new List <SortedSet <int> >(); //装PA包括的实例 //List<SortedSet<int>> listline = new List<SortedSet<int>>(); List <int> listline = new List <int>(); //装每个PA包括的行号 SortedSet <int> ssin1 = new SortedSet <int>() { 1, 4, 7 }; SortedSet <int> ssin2 = new SortedSet <int>() { 1, 4, 8 }; SortedSet <int> ssin3 = new SortedSet <int>() { 2, 5, 9 }; SortedSet <int> ssin4 = new SortedSet <int>() { 3, 6, 9 }; SortedSet <int> ssin5 = new SortedSet <int>() { }; list.Add(ssin1); list.Add(ssin2); list.Add(ssin3); list.Add(ssin4); list.Add(ssin5); //首先赋值第一行初始化 //listPA.Add(list[0]);//PA初始化 // listline.Add(0);//行号初始化 //for (int i = 1; i < list.Count(); i++)//讲实例表分到不同的PA中 //{ // int j = listPA.Count - 1; // SortedSet<int> tmpset = new SortedSet<int>(); // if (listPA[j].Overlaps(list[i])) // { // listPA[j].UnionWith(list[i]); // } // else // { // listline.Add(i); // listPA.Add(list[i]); // } //} Occupation oc = new Occupation(); //oc.PA(list); //for (int i = 0; i < oc.PA(list).Count(); i++)//讲实例表分到不同的PA中 //{ // StringBuilder m = new StringBuilder(); // foreach (var item in oc.PA(list)[i]) // { // m.Append(item.ToString()); m.Append(","); // } // MessageBox.Show(m.ToString()); //} //=========================================================================公共邻域 List <SortedSet <int> > listcn = new List <SortedSet <int> >(); //装实例邻居表 List <SortedSet <int> > listCA = new List <SortedSet <int> >(); //装CA包括的实例 SortedSet <int> csin1 = new SortedSet <int>() { 1, 4, 7, 10, 11, 14 }; SortedSet <int> csin2 = new SortedSet <int>() { 1, 4, 8, 10, 14 }; SortedSet <int> csin3 = new SortedSet <int>() { 2, 5, 9, 12, 15 }; SortedSet <int> csin4 = new SortedSet <int>() { 3, 6, 9, 13, 16 }; listcn.Add(csin1); listcn.Add(csin2); listcn.Add(csin3); listcn.Add(csin4); //List<int> line = new List<int>(); //foreach (var item in oc.PA(list)[oc.PA(list).Count() - 1])//取出listline //{ // line.Add(item); //} //for (int i = 0; i < line.Count()-1; i++) //{ // SortedSet<int> tmpset = new SortedSet<int>(); // tmpset = listcn[line[i]]; // for (int j = line[i]+1; j < line[i + 1]; j++) // { // tmpset.UnionWith(listcn[j]); // } // listCA.Add(tmpset); //} //listPA = oc.PA(list); //listCA = oc.CA(oc.PA(list)[oc.PA(list).Count() - 1], listcn); //for (int i = 0; i < listCA.Count(); i++)//讲实例表分到不同的PA中 //{ // StringBuilder m1 = new StringBuilder(); // foreach (var item in listCA[i]) // { // m1.Append(item); // m1.Append(","); // } // MessageBox.Show(m1.ToString()); //} double index = oc.OccupationIndex(oc.CA(oc.PA(list)[oc.PA(list).Count() - 1], listcn), oc.PA(list)); MessageBox.Show(index.ToString()); //for (int i = 0; i < listline.Count(); i++)//讲实例表分到不同的PA中 //{ // MessageBox.Show(listline[i].ToString()); //} }