美文网首页前端技术讨论
javaScript数据结构和算法--插入排序

javaScript数据结构和算法--插入排序

作者: 安然_她 | 来源:发表于2019-05-15 15:30 被阅读0次

    插入排序每次排一个数组项,类似平时抓牌的模式,假设第一项已经是排好序的,接着第二项和第一项比较,如果第二项比第一项小,则第二项插入第一项,以此类推,选中接下来的数,和前面已经排好序的数进行比较,一旦找到一旦这个数比待比较的数小,则把这个数插入。

    插入排序的代码实现:

    function InsertSort() {

        const array = [];

        this.insert = function(item) {

            array.push(item);

        }

        this.toString = function() {

            return array.join();

        }

        this.insertSort = function() {

            const length = array.length;

            let temp,j;

            for(let i=1; i<length; i++) { // 从1开始,假定第一个数已经排好序了

                j = i;

                temp = array[j];

                while(j>0 && array[j-1] > temp) {

                    array[j] = array[j-1];

                    j--;

                }

                array[j] = temp;

            }

        }

    }

    var arr = new InsertSort();

    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.insertSort();

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

    相关文章

      网友评论

        本文标题:javaScript数据结构和算法--插入排序

        本文链接:https://www.haomeiwen.com/subject/qiwpaqtx.html