如何对两维数组进行排序?(200分)

  • 主题发起人 主题发起人 wshuming
  • 开始时间 开始时间
W

wshuming

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个两维数组 result[j] i: 1..100 ,j: 1..6
现在首先要对result[1] 排序,再按result[6] 排序 。
我只会按一个关键字排,如果有两个就不行了。
请给出具体算法! 或email to: wshuming@163.com !
请大家指教!
 
是不是在result[1]有相等值的情况下,再按再按result[6]排?
 
for i1 := 0 to 99 do
for i2 := i1 + 1 to 99 do
if result[i1][1] < result[i2][1] then
exchange(i1,i2);

for i1 := 0 to 99 do
for i2 := i1 + 1 to 99 do
if result[i1][1] <> result[i2][1] then
break
else if result [i1][6] < result[i2][6] then
exchange(i1,i2)

 
是不是在result[1]有相等值的情况下,再按再按result[6]排?
是!
不过,dreamtiger 的算法能否改进,因为这段程序result[j] 中 i 可能会有3000多
我是要在java /servlet 中调用,能否用快速排序! thanks !


 
和算法没有关系,唯一不同的是,在比较大小的时候,首先比较 result[1] ,如果不
能分出大小,再加上 result[6]的比较。完全可以使用现有的任何一种算法。
 
多人接受答案了。
 
for i1 := 0 to 99 do
for i2 := i1 + 1 to 99 do
if result[i1][1] < result[i2][1] then
exchange(i1,i2);
i1 := 0;
while (i1 < 99) do
begin
for i2 := i1 + 1 to 99 do
if result[i1][1] <> result[i2][1] then
break
else if result [i1][6] < result[i2][6] then
exchange(i1,i2)

i1 := i2;
end;
 
后退
顶部