精華區beta CSSE 關於我們 聯絡資訊
※ 引述《Nt1 (用功點吧!)》之銘言: 我是一個要準備考試的考生,在看老師的講義時有看到 exchange sort 演算法,是屬於 stable 的演算法,但是我實際用手算了好多次,發現怎麼算都是 unstable … 請問一下,是我哪邊算錯了,還是 exchange sort 就是 unstable 的排序演算法呢? code: exchange_sort() { for (inti=0;i<size;i++){ for (int j=i+1,j<size;j++){ if(a[i]>a[j]) then swap(a[i],a[j]); } } } /* 一開始 a[0]和a[1]比,如果a[0]>a[1],則互換,接著a[0]和a[2]比... 直到a[0]和a[n]比完。 再來a[1]和a[2]比……一直比到a[n-1] */ 4,2,5,8,8+,6 (原始資料) 2,4,5,8,8+,6 (4>2,互換) 2,4,5,6,8+,8 (8>6,互換) 排完後,8 和 8+ 的位置不一樣了,請問…這樣不是應該是 unstable 嗎? 可是我們老師的講義上寫 stable ,後面列的表格也是 satble,覺得很疑惑 @@ google 和學校圖書館都沒什麼關於 exchange sort 的資料,我也知道它不重要…只是 一直有個疙瘩在心中~~~書都念不下去了~~請各位指正一下!是我關念有錯還是講義寫錯 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.135.113.45
hardcover:exchange sort(bubble sort): stable 03/01 22:50
hardcover:selection sort: unstable 03/01 22:51
hardcover:應該是這樣 XD 03/01 22:51
我們老師的講義是把 exchange sort 特別列一個演算法出來,然後 stability 的地方 是 stable,然後我看大部份的地方說 exchange sort包涵了 bubble sort,selection sort…所以我找不到單獨 exhcnage sort 的資料 @@" 只是自己按老師的演算法做是 unstable,和講義不合@@",讓我很苦腦 >"<||||| 圖書館的書也沒有一本有列出 exchange sort 這個演算法…也是只有說他包涵了哪幾種這樣。 好吧!我還是不要鑽牛角尖了 XD 就當作沒有這一個排序法吧 謝謝。
edwar:(a[i]>a[j]) 改成 >= 呢? 03/01 23:22
唔…好像還是一樣^^ 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.156.182