[演算法] 氣泡排序法(Bubble Sort)

文章推薦指數: 80 %
投票人數:10人

[演算法(Algorithm)] 氣泡排序法(Bubble Sort) · Best Case:Ο(n). 當資料的順序恰好為由小到大時; 第一次執行後,未進行任何swap ⇒ 提前結束 · Worst Case:Ο(n2). 當資料的 ... [演算法(Algorithm)]氣泡排序法(BubbleSort) 將資料分成 已排序:位置第二筆交換位置(Swap) 若還有未排序的資料,則用第二筆和第三筆資料比對 依此類推 若未排序的資料中,比對時都沒有進行交換位置flag=false 代表資料已排序好提早結束排序 執行時,未排序資料中的最大值會如同氣泡般往右跑 時間複雜度(TimeComplexity) BestCase:Ο(n) 當資料的順序恰好為由小到大時 第一次執行後,未進行任何swap提前結束 WorstCase:Ο(n2) 當資料的順序恰好為由大到小時 每回合分別執行:n-1、n-2、...、1次 (n-1)+(n-2)+...+1=n(n-1)/2Ο(n2) AverageCase:Ο(n2) 第n筆資料,平均比較(n-1)/2次 空間複雜度(SpaceComplexity):θ(1) 穩定性(Stable/Unstable):穩定(Stable) Demo: 演算法 JS varswap=function(data,i,j){ vartmp=data[i]; data[i]=data[j]; data[j]=tmp; }; varbubbleSort=function(data){ varflag=true; for(vari=0;i



請為這篇文章評分?