冒泡排序是一种简单的排序算法. 它重复地走访过要排序的数列, 一次比较两个元素, 如果它们的顺序错误就把它们交换过来. 走访数列的工作是重复地进行直到没有再需要交换, 也就是说该数列已经排序完成. 这个算法的名字由来是因为越小的元素会经由交换慢慢 "浮" 到数列的顶端.
JavaScript 中实现冒泡排序的思路:
数组中有 n 个数, 比较每相邻两个数, 如果前者大于后者, 就把两个数交换位置; 这样一来, 第一轮就可以选出一个最大的数放在最后面; 那么经过 n-1(数组的 length - 1) 轮, 就完成了所有数的排序.
JavaScript 实现冒泡排序的代码:
- <!DOCTYPE html>
- <HTML>
- <head>
- <meta charset="UTF-8">
- <title>
- 冒泡排序
- </title>
- </head>
- <body>
- <script>
- // 思路: 先比较一轮一次, 然后用 for 循环比较一轮多次, 然后再加 for 循环比较多轮多次
- // 从大到小排序
- var array = [10, 20, 9, 8, 79, 65, 100];
- // 比较轮数
- for (var i = 0; i < array.length - 1; i++) {
- // 每轮比较次数, 次数 = 长度 - 1 - 此时的轮数
- for (var j = 0; j < array.length - 1 - i; j++) {
- if (array[j] > array[j + 1]) {
- var temp = array[i];
- array[j] = array[j + 1];
- array[j + 1] = temp;
- } //end if
- } //end for 次数
- } //end for 轮数
- console.log(array);
- </script>
- </body>
- </HTML>
来源: http://www.css88.com/qa/javascript/11170.html