求一c#算法

王艳飞 2005-08-15 10:58:56
有一个二维数组:int[,] numbers = { {1, 5}, {3, 3}, {5, 4}, {7, 6}, {9, 8} };
现在想要根据这个二维数组里的每一个一维数组的第二个值进行排序,即:
得出升序{ {3, 3}, {5, 4}, {1, 5}, {7, 6}, {9, 8} } 得出降序{ {9, 8} ,{7, 6} ,{1, 5},{5, 4}, {3, 3}};
...全文
195 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovefootball 2005-08-15
  • 打赏
  • 举报
回复
先把它放到arraylist里
然后用arraylist的排序

arraylist array = new arraylist();
array.add("5,1");
array.add("3,3");
array.add("4,5");
array.add("6,7");
array.add("8,9");
这样反过来存
重写排序
按照","前面的排序
排完后
在写回去
王艳飞 2005-08-15
  • 打赏
  • 举报
回复
我说的只是一个例子,我实际上的二维数组都是字符串。我最终想要的是字符串的排序
Tony_lau111082 2005-08-15
  • 打赏
  • 举报
回复
冒泡法

自己在GOOGLE上查
Hemee 2005-08-15
  • 打赏
  • 举报
回复
实现IComparable接口,然后直接用ArrayList的Sort()方法就可以了
amendajing 2005-08-15
  • 打赏
  • 举报
回复
这个是升序,降序交换条件换了就可以,写在方法里,加个参数就可以控制升降序了
amendajing 2005-08-15
  • 打赏
  • 举报
回复
int[,] numbers = {{1,5},{3,3},{5,4},{7,6},{9,8}};
int i,j,temp,temp1; //交换标志

    bool exchange;

    for(i=0; i<numbers.GetLength(0); i++) //最多做R.Length-1趟排序
    {
    exchange=false; //本趟排序开始前,交换标志应为假

    for(j=numbers.GetLength(0)-2; j>=i; j--)
    {
    if(numbers[j+1,1]<numbers[j,1]) ///交换条件
    {
     temp=numbers[j+1,1];
temp1 = numbers[j+1,0];
     numbers[j+1,1]=numbers[j,1];
numbers[j+1,0] = numbers[j,0];
numbers[j,0]=temp1;
     numbers[j,1]=temp;

     exchange=true; //发生了交换,故将交换标志置为真
    }
    }
    if(!exchange) //本趟排序未发生交换,提前终止算法
    {
    break;
    }
}
guyan033 2005-08-15
  • 打赏
  • 举报
回复
int[] s=new int [2];//用来作第三变量;

int [][] v=new int [4][];//定义二维数组并赋初值
for( int i=0;i<v.Length ;i++)
v[i]=new int [2];

v[0][0]=1; v[0][1]=5;
v[1][0]= 3; v[1][1]= 3;
v[2][0]= 5 ; v[2][1]= 4;
v[3][0]=7; v[3][1]= 6 ;



for(int i=0;i<v.Length -1;i++)
for(int j=0;j<v.Length ;j++)
if( v[i][1]>v[i+1][1])
{ s=v[i];
v[i]=v[i+1];
v[i+1]=s;
}

不好意思我不知道,在C#中如何给数组赋初值了,只能用上边最笨的方法了,别见笑.
linfengcyl 2005-08-15
  • 打赏
  • 举报
回复
好像是IComparer吧.
王艳飞 2005-08-15
  • 打赏
  • 举报
回复
请问楼上,你说的,重写排序应该怎样处理?

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧