冒泡排序 可视化

描述:当前是关于Echarts图表中的 柱状图 示例。
 
            option = {
    title: {
        text: '冒泡排序'
    },
    color: ['#3398DB'],
    tooltip: {
        trigger: 'axis',
        axisPointer: { // 坐标轴指示器,坐标轴触发有效
            type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
        }
    },
    grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
    },
    xAxis: [{
        type: 'category',

        axisTick: {
            alignWithLabel: true
        }
    }],
    yAxis: [{
        type: 'value'
    }],
    series: [

    ]
};

myChart.setOption(option);

//随机数据
function getRandomData(len) {
    var randomData = [];
    var idx = 0;
    while (idx < len) {
        randomData.push(Math.ceil(Math.random() * 100));
        idx++;
    }
    return randomData;
}

function copyData(data) {
    let cdata = [];
    data.forEach(d => {
        cdata.push(d);
    });
    return cdata;
}


var randomData = getRandomData(40);
var result = [];
const len = randomData.length;
var temp;
result.push(copyData(randomData));
for (let i = 0; i < len - 1; i++) {
    for (let j = 0; j < len - 1; j++) {
        if (randomData[j] > randomData[j + 1]) {
            temp = randomData[j];
            randomData[j] = randomData[j + 1];
            randomData[j + 1] = temp;
            result.push(copyData(randomData));
        }
    }
}

var index = 0;
var id = setInterval(function() {
    if (index < result.length) {
        var d = result[index];
        var data = [];
        for (let i = 0; i < d.length; i++) {
            data.push([i, d[i]]);
        }
        myChart.setOption({
            series: [{
                type: 'bar',
                data: data,
            }]
        })

    } else {
        clearInterval(id);
    }
    index++;
}, 30)