javaScript数据结构和算法--冒泡排序

冒泡排序比较任何两个相邻的数,如果第一个数比第二个数大,则交换这两个数,元素向上移动至正确的位置。

冒泡排序的算法实现:

function BubbleSort() {

    const array = [];

    this.insert = function(item) {

        array.push(item);

    }

    this.toString = function() {

        return array.join();

    }

    const swap = function(index1, index2) {

        const temp = array[index1];

        array[index1] = array[index2];

        array[index2] = temp;

    }

    //冒泡排序

    this.bubbleSort = function() {

        for(let i=0; i<array.length; i++) {

            for(let j=0; j<array.length-1; j++) {

                if(array[j] > array[j+1]) {

                    swap(j, j+1);

                }

            }

        }

    }

    //改进版的冒泡排序

    this.bubbleSort1 = function() {

        for(let i=0; i<array.length; i++) {

            for(let j=0; j<array.length-1-i; j++) {

                if(array[j] > array[j+1]) {

                    swap(j, j+1);

                }

            }

        }

    }

}

var arr = new BubbleSort();

arr.insert(3);

arr.insert(13);

arr.insert(32);

arr.insert(23);

arr.insert(11);

arr.insert(8);

arr.insert(33);

arr.insert(28);

console.log(arr.toString()); // 3,13,32,23,11,8,33,28

arr.bubbleSort();

console.log(arr.toString()); // 3,8,11,13,23,28,32,33

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /*去重*/ function delRepeat(arr){ var newArray=new Array();...
    Hedgehog_Dove阅读 1,878评论 0 2
  • var sort = {debug:function(str){if(window.console && wind...
    qhaobaba阅读 290评论 0 0
  • 冒泡排序 思路:重复遍历数组中的元素,依次比较两个相邻的元素,如果前一个元素大于后一个元素,就依靠第三个变量将它们...
    晴天的晴q阅读 2,836评论 0 1
  • 作为一个年轻人,我相信命运的程度真的超出了自己的认知范围。 记得上大学那会儿,我每天说的最多的话就...
    90后闲散人阅读 785评论 1 5
  • 今早刷了许久新闻,翻阅王宝强先生的相关信息。内心之中多少有些感叹。虽然隔着太远,不了解王宝强先生的为人,但看过一些...
    化浊阅读 131评论 0 1