我有一组数,存在数据库里,这组数的数值是可以变化的(可以通过数据库修改)
假如有5个
例如
90   (x1=90)
7     (x2)
100    (x3)
34      (x4)
94     (x5)我只会这样
if(x1>x2 && x1>x3 && x1>x4 && x1>x5)
{....
if(x2>x3 && x2>x4 ....)
{...
}
else if(x3>x2 && ....)
{...
}
}
这样数少一点,还好说,不过多了,就复杂了
请问怎么样能写出一个简单的算法,由大到小排序,如果这组数变成10个,也可以算

解决方案 »

  1.   

    用Array,ArrayList,Hashtable都可以实现你说的功能。首先把数据存入这些对象,然后排序就OK.
    例如:
    ArrayList.Sort();
      

  2.   

    我要是想把排序后的数值分别取出来,怎样实现呢
    比如
    Label1.text=最大的
    Label2.text=
    ...........
    Label5.text=最小的
      

  3.   

    ArrayList.Sort()排序后不就可以取出最大和最小了吗,ArrayList.Item(0)'最小
    ArrayList.Item(ArrayList.Count-1)'最大
      

  4.   

    1.使用ArrayList.Sort();
    2.如果是.net 2.0,可以使用Array.Sort 泛型方法 (T[])对数据进行排序 。
      

  5.   

    to zhzuo(秋枫) ( ) 信誉:110 我一直不会使用这种泛型我在使用arraylist的时候,编辑器告诉我arraylist已过时,使用<T>list能写篇文章吗
      

  6.   

    to  由大到小排序
    ================================================
    for(int i=0;i<yourarray.Length;i++)
    {
      int k=i;
      for(j=i+1;j<4;j++)
       {
          if(yourarray[k]<yourarray[j])
                     k=j;
        }
       int tmp=yourarray[i];
       yourarray[i]=yourarray[j];
       yourarray[j]=tmp;
     }
      

  7.   

    晕,刚才好像发错了:(
    for(int i=0;i<yourarray.Length;i++)
      {
          int k=i;
         for(int j=i+1;j<5;j++)
       {
           if(yourarray[k]<yourarray[j])
               k=j;
        }
           int tmp=yourarray[i];
             yourarray[i]=yourarray[k];
             yourarray[k]=tmp;
     }
      

  8.   

    int tmp=yourarray[i];
             yourarray[i]=yourarray[k];
             yourarray[k]=tmp;这些都是什么意思啊,我要是有五个数
    90   (x1=90)
    7     (x2)
    100    (x3)
    34      (x4)
    94     (x5)
    怎么放进去啊