2013-04-05 107 views
0

我有一堆对象都是同一类(DistributedApps)的Arraylist。排序帮助。插入排序c#

构造:

public Distributedapps(string appName, string devName, string description, double size, int estLife,double price, int downloads,int ratings,string distributor, double annLicenceFee, int maxUsers) 
      :base(appName,devName,description,size,estLife,price,downloads,ratings) 

我想插入排序排序此列表(DeployedApps)降临到该应用程序的大小(尺寸)

public void DeployInsertionSortAppSizeDeployed() 
    { 
     Console.WriteLine("INSERTION SORT ON APP SIZE DEPLOYED!"); 
     int II; 
     Distributedapps Temp, PrTemp; 
     for (int IO = 1; IO <= (Count(DeployedApps) - 1); IO++) 
     { 
      Temp = (Distributedapps)DeployedApps[IO]; 
      II = IO; 
      PrTemp = (Distributedapps)DeployedApps[II - 1]; 
      while ((II > 0) && (PrTemp.GetSize().CompareTo(Temp.GetSize()) <= 0)) 
      { 
       DeployedApps[II] = DeployedApps[II - 1]; 
       II -=1; 
      } 
      DeployedApps[II] = Temp; 
     } 
     Console.WriteLine("DONE!"); 
    } 

我尝试列表的发布照片之前,如果排序后代码看起来很好,并没有与它的错误。

+0

那么,有什么问题吗?你的分拣机不工作?它是否会抛出任何异常?它不会编译? – Nolonar 2013-04-05 11:36:05

+0

它确实排序正确。列表顶部的前两个对象被错误地排序。列表的其余部分正确排序。 – 2013-04-05 11:40:32

+0

'应用程序大小(大小)'是“DistributedApps”类的一个字段? – Maris 2013-04-05 11:51:46

回答

0

只要你知道互联网我固定它...

  Console.WriteLine("INSERTION SORT ON APP SIZE DEPLOYED!"); 
     Apps Temp, PrTemp; 
     int II; 
     for (int IO = 1; IO <= (Count(DeployedApps) - 1); IO++) 
     { 
      Temp = (Apps)DeployedApps[IO]; 
      PrTemp = (Apps)DeployedApps[IO - 1]; 
      II = IO; 
      while ((II>0)&&(Temp.GetSize()>=PrTemp.GetSize())) 
      { 
       SwapDEP(II, II - 1); 
       II = II - 1; 
       if (II >= 1) 
       { 
        Temp = (Apps)DeployedApps[II]; 
        PrTemp = (Apps)DeployedApps[II - 1]; 
       } 
      } 

     } 
     Console.WriteLine("DONE!");