帮我用echarts写一个基于冒泡排序,数据为[3,38,44,5,47,15,36,26,27,2,46,4,19,50,48]从小到大动态显示的完整程序
时间: 2023-05-27 13:03:20 浏览: 94
以下是使用 echarts 实现基于冒泡排序的动态显示程序:
html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>冒泡排序</title>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.min.js"></script>
</head>
<body>
<div id="chart" style="width: 600px;height:400px;"></div>
<script src="bubbleSort.js"></script>
</body>
</html>
JavaScript:
var arr = [3,38,44,5,47,15,36,26,27,2,46,4,19,50,48];
// 初始化数据
var option = {
title:{
text: '冒泡排序',
left: 'center'
},
xAxis: {
data: arr.map(function (item, index) {
return index + 1;
}),
name: '排序轮次'
},
yAxis:{
name: '值'
},
series: [
{
name: '值',
type: 'bar',
data: arr,
label: {
show: true,
position: 'top'
}
}
]
};
// 初始化echarts实例
var myChart = echarts.init(document.getElementById('chart'));
// 渲染图表
myChart.setOption(option);
// 冒泡排序
function bubbleSort(arr) {
var len = arr.length;
for (var i = 0; i < len; i++) {
for (var j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j+1]) {
var temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
updateChart(myChart, arr, i, j);
}
}
}
}
// 更新图表数据
function updateChart(chart, arr, i, j) {
var option = chart.getOption();
var data = option.series[0].data;
data[j] = arr[j];
data[j+1] = arr[j+1];
option.title.subtext = '第' + (i+1) + '轮第' + (j+1) + '次交换';
option.series[0].data = data;
chart.setOption(option, true);
}
bubbleSort(arr);
在上面的代码中,我们首先定义了一个包含要排序的元素的数组 arr。然后,我们创建了一个 echarts 图表实例,包含在 div 元素中,用来显示冒泡排序的过程。初始化图表中包含单个柱状图系列,其数据来自于初始数组。接下来,我们定义了 bubbleSort() 函数,其中使用两个 for 循环循环遍历数组并对相邻的两个元素进行比较。如果前一个元素大于后一个元素,我们就交换它们的位置,在交换过程中更新图表数据,使图表中的柱状图序列能够动态地更新。最后,我们调用 bubbleSort() 函数并传递初始数组作为参数,将冒泡排序算法应用于它,完成动态冒泡排序图表的创建。
阅读全文