码迷,mamicode.com
首页 > 编程语言 > 详细

关于算法--蛮力法--冒泡排序

时间:2016-07-14 21:46:09      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:

冒泡排序

一、步骤

  ①比较列表中的相邻元素,如果它们是逆序的则交换位置,进行下一组,多次比较之后,最大的元素就“沉入”到了列表的最后

  ②比较下一轮,直到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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!