首页 > 代码库 > 冒泡排序法

冒泡排序法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>冒泡排序</title>
</head>
<body>
<script>
    //交换函数,用于交换两个之中较大和较小的数值
    function swap(items, firstIndex, secondIndex){
        var temp = items[firstIndex];
        items[firstIndex] = items[secondIndex];
        items[secondIndex] = temp;
    };

    function bubbleSort(items){
        //定义
        var len = items.length, i, j, stop;
        //外层的循环决定需要进行多少次遍历, 内层的循环负责数组内各项的比较, 
        // 还通过外层循环的次数和数组长度决定何时停止比较.
        for (i = 0; i < len; i++){
            for (j = 0, stop = len-i; j < stop; j++){
                if (items[j] > items[j+1]){//如果前一项应该排在后一项之后,则交换顺序
                    swap(items, j, j+1);
                }
            }
        }
        return items;
    }
    var items=[1,3,0,2,6,9,5];
    bubbleSort(items);
    alert(items);
</script>
</body>
</html>

冒泡排序

冒泡排序对一个需要进行排序的数组进行以下操作:

  1. 比较第一项和第二项;
  2. 如果第一项应该排在第二项之后, 那么两者交换顺序;
  3. 比较第二项和第三项;
  4. 如果第二项应该排在第三项之后, 那么两者交换顺序;
  5. 以此类推直到完成排序;

冒泡排序法