[問題] 請問氣泡排序法?

看板C_Sharp作者 (齁搭拉)時間13年前 (2011/03/22 22:12), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/1
我是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

03/22 22:16, , 1F
不好意思 忘記補上第一欄為X 第二欄Y 第四欄D 第五欄是
03/22 22:16, 1F

03/22 22:16, , 2F
是ST
03/22 22:16, 2F

03/22 23:49, , 3F
考慮j==c.Length-1的case,那一行會發生什麼事情
03/22 23:49, 3F

03/22 23:50, , 4F
雖然我不知道你的c和customer有沒有一樣
03/22 23:50, 4F

03/23 12:02, , 5F
順便插個嘴...內圈加到i就夠了
03/23 12:02, 5F

03/27 13:32, , 6F
謝謝樓上兩位 問題已解決
03/27 13:32, 6F
文章代碼(AID): #1DYAux1a (C_Sharp)