Sort
Public Static voidACM1002 (string[] azx) { string[] A =New string[AZX. Length]; for(inti =0; I < AZX. Length; i++) {StringBuilder sb=NewStringBuilder (); Azx[i]= Azx[i]. Replace ("-",""); for(intj =0; J < Azx[i]. Length; J + +) { CharCR =Azx[i][j]; if(CR = ='A'|| CR = ='B'|| CR = ='C') {sb. Append ("2"); } Else if(CR = ='D'|| CR = ='E'|| CR = ='F') {sb. Append ("3"); } Else if(CR = ='G'|| CR = ='H'|| CR = ='I') {sb. Append ("4"); } Else if(CR = ='J'|| CR = ='K'|| CR = ='L') {sb. Append ("5"); } Else if(CR = ='M'|| CR = ='N'|| CR = ='O') {sb. Append ("6"); } Else if(CR = ='P'|| CR = ='R'|| CR = ='S') {sb. Append ("7"); } Else if(CR = ='T'|| CR = ='U'|| CR = ='V') {sb. Append ("8"); } Else if(CR = ='W'|| CR = ='X'|| CR = ='Y') {sb. Append ("9"); } Else{sb. Append (CR); }} A[i]=sb. ToString (); } int[] items =New int[A.length]; intBBBB =0; foreach(varItemincha) {ITEMS[BBBB]=Convert.ToInt32 (item); BBBB++; } qsortdiy (Items,0, items. Length-1); //Console.WriteLine (String. Join (",", items));dictionary<int,int> dic =Newdictionary<int,int>(); foreach(varIteminchitems) { if(!DiC. ContainsKey (item)) {dic. ADD (item,1); } Else{Dic[item]++; } } foreach(varIteminchdic) {if(item. value!=1) { strings =item. Key.tostring (); S= S.insert (3,"-"); Console.WriteLine (S+" "+item. Value); } } } Public Static voidMpsort (int[] Array) { intTep; for(inti =0; I < array. Length-1; i++) { for(intj =0; J < Array. Length-i-1; J + +) { if(Array[j] > array[j +1]) {tep= Array[j +1]; Array[j+1] =Array[j]; ARRAY[J]=Tep; } } } } Public Static voidQsortdiy (int[] Array,intLowintHigh ) { if(Low >=High ) { return; } intie =Qsortunit (array, low, high); Qsortdiy (array, low, ie-1); Qsortdiy (array, ie+1, high); } Private Static intQsortunit (int[] Array,intLowintHigh ) { intKey =Array[low]; while(Low <High ) { while(Array[high] >= key && high >Low ) { --High ; } Array[low]=Array[high]; while(Array[low] <= key && high >Low ) { ++Low ; } Array[high]=Array[low]; } Array[low]=key; returnHigh ; }
C # ACM poj1002