[問題] Bubble Sort的問題,不知道哪裡錯了

看板java作者 (TING)時間6年前 (2018/11/09 10:47), 6年前編輯推噓3(3014)
留言17則, 6人參與, 6年前最新討論串1/1
大家好~小妹最近才剛踏入Java學習.以前完全沒寫程式經驗 如有一些很新手的問題,請鞭小力一點,感謝各位! 目前在學Bubble Sort,但寫了一段希望先用隨機數跑出來後, 再進行Bubble Sort,然後回傳進行時間, 但是在最下面排序後的下一行a卻顯示有誤 for (int a = 0; a < aNum.length; a++) 想請各位大大解惑一下!或是該怎麼調整呢? 謝謝大家~ 附上連結 https://www.codepile.net/pile/abBK9pkQ ----------------------------------------------- public class LabBubblesort { public static void main(String[] args) { int[] aNum = new int[5]; for (int a = 0; a < aNum.length; a++) { aNum[a] = (int) (Math.random() * 100); System.out.print(" 排 序 前 :"); System.out.print(" " + aNum[a] + "\t"); System.out.println(); System.out.println(System.currentTimeMillis()); int n = aNum.length; int t; for (int i = n - 2; i >= 0; i--) { // 進行氣泡排序法 for (int j = 0; j <= i; j++) { if (aNum[j] > aNum[j + 1]) { t = aNum[j]; aNum[j] = aNum[j + 1]; aNum[j + 1] = t; } } System.out.print(" 排 序 後 :"); for (int a = 0; a < aNum.length; a++) System.out.print(" " + aNum[a] + "\t"); System.out.println(); System.out.println(System.currentTimeMillis()); } } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.218.5.190 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1541731663.A.441.html

11/09 11:01, 6年前 , 1F
大括號
11/09 11:01, 1F

11/09 11:56, 6年前 , 2F
找個貼程式碼的網站來貼你的code吧 這樣看好痛苦
11/09 11:56, 2F

11/09 12:30, 6年前 , 3F
痛苦主要不在於在哪貼,而是這段code 的indentation
11/09 12:30, 3F

11/09 12:30, 6年前 , 4F
一塌胡塗...
11/09 12:30, 4F
抱歉~ ※ 編輯: every823 (61.218.5.190), 11/09/2018 12:37:19

11/09 13:54, 6年前 , 5F
a重複使用了阿...
11/09 13:54, 5F

11/09 13:56, 6年前 , 6F

11/09 16:07, 6年前 , 7F
這個檔案不能 copy,你是希望讀者重頭照你的程式key一遍?
11/09 16:07, 7F

11/09 16:09, 6年前 , 8F
產生資料的 for loop 怎麼沒有 close 起來再做排序呢?
11/09 16:09, 8F

11/09 16:10, 6年前 , 9F
bubble sort 不管是從前到後還是從後到前,i 與 j 都有
11/09 16:10, 9F

11/09 16:11, 6年前 , 10F
1 個項次差,才能進行比較,如果按照你的方式,j = 0~i
11/09 16:11, 10F

11/09 16:11, 6年前 , 11F
那 i 應該是 n - 1 到 1,而不是 0
11/09 16:11, 11F

11/09 16:11, 6年前 , 12F
而且,j 一定不能 = i,所以 j 應該是 0 ~ (i - 1)
11/09 16:11, 12F

11/09 16:12, 6年前 , 13F
這樣寫 bubble sort 很難讀,建議你還是用傳統的寫法
11/09 16:12, 13F

11/09 16:12, 6年前 , 14F
i = 0 ~ n - 2, j = i+1 ~ n-1 這樣比較好讀
11/09 16:12, 14F

11/09 21:21, 6年前 , 15F
謝謝大家~~~~^^
11/09 21:21, 15F

11/09 23:41, 6年前 , 16F
原PO多去找幾篇coding style的文章看看 很有幫助的
11/09 23:41, 16F

11/10 21:55, 6年前 , 17F
好的~~謝謝
11/10 21:55, 17F
文章代碼(AID): #1RvFLFH1 (java)
文章代碼(AID): #1RvFLFH1 (java)