标签:
冒泡排序
一、步骤
①比较列表中的相邻元素,如果它们是逆序的则交换位置,进行下一组,多次比较之后,最大的元素就“沉入”到了列表的最后
②比较下一轮,直到n-1遍之后,列表顺序完毕
二、JavaScript代码实现
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>BubbleSort</title> 6 </head> 7 <body> 8 9 </body> 10 <script type="text/javascript"> 11 /* 12 冒泡排序法 13 */ 14 var arr = [98,89,78,9,4,5,65,34,12,3]; 15 for(var i = 0; i < arr.length - 1; i++){//循环n-1次 16 for(var j = 0; j < arr.length - 1 - i; j++){ 17 if(arr[j] > arr[j+1]){ //如果前面的数字比后面的大,则交换两者位置 18 var temp = arr[j]; 19 arr[j] = arr[j+1]; 20 arr[j+1] = temp; 21 } 22 } 23 } 24 25 console.log(arr); 26 </script> 27 </html>
三、算法分析
对于输入规模为n的数组来说,键值的比较次数是相同的,均为C(n)=Σ[i=0 to n-1]Σ[j=0 to n-1-i] 1 = Σ[i=0 to n-1] (n-i) = n(n+1)/2
属于Θ(n2),但键交换次数也是取决于特定的输入,最坏的情况下,交换次数与比较次数相同,Sworst(n) = C(n) = n(n+1)/2,属于Θ(n2)
标签:
原文地址:http://www.cnblogs.com/likaopu/p/5671655.html