网站建设自己在家接单,一键注册所有网站,泉州网站制作套餐,标书制作需要学多久冒泡排序#xff08;Bubble Sort#xff09;基本思想#xff1a; 经过多次迭代#xff0c;通过相邻元素之间的比较与交换#xff0c;使值较小的元素逐步从后面移到前面#xff0c;值较大的元素从前面移到后面。 大数据往上冒泡#xff0c;小数据往下沉#xff0c;也就是… 冒泡排序Bubble Sort基本思想 经过多次迭代通过相邻元素之间的比较与交换使值较小的元素逐步从后面移到前面值较大的元素从前面移到后面。 大数据往上冒泡小数据往下沉也就是小数据在左边大数据在右边 最简单也是性能最差的排序算法 入门级排序算法 代码实现
//不优化直接写
function bubbleSort(data) {console.time(test);for (let i 0; i data.length; i) {for (let j 0; j data.length - i - 1; j) {if (data[j] data[j 1]) {let temp data[j];data[j] data[j 1];data[j 1] temp;}}}console.timeEnd(test);return data;
}
//优化
function bubbleSort1(data) {console.time(test1);for (let i 0; i data.length; i) {//for (let j 0; j data.length - 1 - i; j) {if (data[j] data[j 1]) {let temp data[j];data[j] data[j 1];data[j 1] temp;}}}console.timeEnd(test1);return data;}
复杂度
时间复杂度O(1)只用到了几个辅助的常量i,j空间复杂度O(n²)
代码测试 const ret bubbleSort([10,20,4,9,100,300,123]);console.log( ~ ret:, ret) // [4, 9, 10, 20, 100, 123, 300]const ret2 bubbleSort1([10,20,4,9,100,300,123]);console.log( ~ ret:, ret2) // [4, 9, 10, 20, 100, 123, 300]