精華區beta NTUScout 關於我們 聯絡資訊
※ 引述《meows (琦)》之銘言: : ※ 引述《SmallTACO (*乖者違背常理也*)》之銘言: : : int rr; : : for(i=1;i<320*320;i++) : : { : : j=i; : : rr=numbers[i]; : : do : : { : : numbers[j]=numbers[j-1]; : : j=j-1; : : if(j<0) : : break; : : }while(rr<=numbers[j-1]); : : numbers[j+1]=rr; : : } : 條件式該放do後面吧 : 因為第一次的執行沒有條件判斷 : 必然是有問題的 嗯... 那是c++語法... 每本書都這樣寫... 應該沒問題啦 ^^ 我今天自己在紙上又run過了一遍... 發現自己犯了basic語法轉換成c++語法的錯誤... (因為手邊沒有c++的排序程式... 只好看以前basic的書自己轉換過來...) 改成下面這樣應該就沒問題了... 回家試試看 ^^ int rr; for(i=1;i<320*320;i++) { j=i; rr=numbers[i]; do { numbers[j]=numbers[j-1]; j=j-1; if(j==0) break; }while(rr<=numbers[j-1]); numbers[j]=rr; } : 以前寫過氣泡排序 : 很久沒碰了 : 如果需要我再把資料找給你 嗯... 氣泡排序是我之前唯一不用看任何書兩三下就能寫出來的排序法... 高中學basic時不學無術,以為學會一種就夠了 ><~ 可是氣泡排序的速度太慢了... 以我的例子而言總共有 102400 筆資料... 用氣泡排序法大概要10分鐘左右... 插入排序法時間大約小於氣泡的一半... 而謝耳排序法1分鐘之內就解得出來了... 另外還有兩種排序法... 今天晚上要學下來 ^^ 試試在紙上run一遍謝耳排序法吧! 看能不能找出錯誤 ^^ -- 錢多事少離家近 位高權重責任輕 每日睡到自然醒 薪水領到手抽筋 逢年過節拿獎金 別人加班我加薪 秘書妖豔員工齊 有禍歸人功歸己 歐美亞非加南極 出差旅遊任我行