作者HODALA11 (齁搭拉)
站內C_Sharp
標題[問題] 請問氣泡排序法?
時間Tue Mar 22 22:12:09 2011
我是C#的超級新手
在讀入一個TXT檔後 如下面所示
4 10
6 12
10 8 150
8 6 100
15 20 0 0
57 62 0 0
37 52 7 100
49 49 30 55
52 64 16 20
20 26 9 130
40 30 21 73
21 47 15 97
17 63 19 29
31 62 23 47
52 33 11 5
42 41 5 160
要根據最後一個欄位做排序
排序完後前面欄位的資料不要亂掉
下面是我的程式碼
for (int i = 6; i < c.Length; i++)
{
for (int j = 6; j< c.Length; j++)
{
customer[0].ST = 100000;
if (customer[j].ST > customer[j+1].ST)
{
customer[0 ].ST = customer[j].ST;
customer[j].ST = customer[j + 1].ST;
customer[j + 1].ST = customer[j].ST;
customer[0].X = customer[j].X;
customer[j].X = customer[j + 1].X;
customer[j + 1].X = customer[j].X;
customer[0].Y = customer[j].Y;
customer[j].Y = customer[j + 1].Y;
customer[j + 1].Y = customer[j].Y;
customer[0].D = customer[j].D;
customer[j].D = customer[j + 1].D;
customer[j + 1].D = customer[j].D;
}
}
}
執行後都會在
if (customer[j].ST > customer[j+1].ST)
這行出現"索引在陣列的界限之外"的錯誤訊息
請問是哪邊有問題 還是少了什麼東西
感謝!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.126.148.197
1F:→ HODALA11:不好意思 忘記補上第一欄為X 第二欄Y 第四欄D 第五欄是 03/22 22:16
2F:→ HODALA11:是ST 03/22 22:16
3F:→ weiyucsie:考慮j==c.Length-1的case,那一行會發生什麼事情 03/22 23:49
4F:→ weiyucsie:雖然我不知道你的c和customer有沒有一樣 03/22 23:50
5F:→ arcred:順便插個嘴...內圈加到i就夠了 03/23 12:02
6F:→ HODALA11:謝謝樓上兩位 問題已解決 03/27 13:32