作者timtim01 (dragon)
看板TransCSI
标题[问题] 有关气泡排序法一问
时间Sat May 30 12:01:54 2009
当我们使用气泡排序法进行 N 个数值的排序时,
必须执行两层FOR回圈(nested for-loop)。其中内层
回圈需执行 (N-1) 次 IF 的测试,外层回圈也需执行 (N-1)次,
总共会执行 (N-1)*(N-1)次 (大约为N^2,若 N值够大的话) IF 测试。
即使数字已经完全按照顺序排列,仍需要进行 N*N 次的比较
问题:有没有可能降低 N*N 比较的次数?
我想到的方法是取中断点
在中间先取中断点
然後 用if跑跑看有没有 照顺序
如果没有 再用右边3/4触再取另一个中断点
跑跑看 有没有照顺序
我不知道这种方法是否可行?
我目前只想到这种方法
如果有更好的方法 请站内信给我
或按R 回覆文章
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.73.50.213