冒泡算法

简介: 冒泡算法

<body>


<!--


冒泡排序: [2,5,8,1,4]


原理:


第一次冒泡:从索引为0开始,进行两两比较,如果索引小上的值大于索引大的值,交换位置,最终产生一个最大值放大arr.length-1的位置 (第一次就会产生最大的值哦)


0-1 1-2 2-3 3-4


第二次冒泡:从索引为0开始,进行两两比较,如果索引小上的值大于索引大的值,交换位置,最终产生一个最大值放大arr.length-2的位置


0-1 1-2 2-3


第三次冒泡:从索引为0开始,进行两两比较,如果索引小上的值大于索引大的值,交换位置,最终产生一个最大值放大arr.length-3的位置


0-1 1-2


第四次冒泡:从索引为0开始,进行两两比较,如果索引小上的值大于索引大的值,交换位置,最终产生一个最大值放大arr.length-4的位置


0-1


总结:


1. 如果数组元素有n个,冒泡次数为n-1次


2.


第一次冒泡: 0-1 1-2 2-3 3-4


第二次冒泡: 0-1 1-2 2-3


第三次冒泡: 0-1 1-2


第四次冒泡: 0-1


if(arr[j] > arr[j+1]){ //arr[j]是代表左边的 arr[j+1]是代表右边的值


i:排序的次数 j:每次排序遍历的索引


1 0 1 2 3(4-i)
2 0 1 2(4-i)
3 0 1(4-i)
4 0(4-i)
arr.length-1等于4
j = arr.length-1-i;结束的条件
<script>
var arr = [2,5,8,1,4];
//i:排序的次数
for (let i = 1; i <= arr.length-1; i++) {
//j:每次排序遍历的索引
for (let j = 0; j <= arr.length-1-i; j++) {
if(arr[j] > arr[j + 1]){ //小标为0的与下标为1的值做比较
let temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
</script>
相关文章
|
6天前
|
算法 搜索推荐 JavaScript
NodeJ实现冒泡算法
NodeJ实现冒泡算法
22 0
|
6天前
|
算法 搜索推荐 Java
Java实现冒泡算法
Java实现冒泡算法
13 0
|
6天前
|
存储 算法 搜索推荐
【算法】七大经典排序(插入,选择,冒泡,希尔,堆,快速,归并)(含可视化算法动图,清晰易懂,零基础入门)
【算法】七大经典排序(插入,选择,冒泡,希尔,堆,快速,归并)(含可视化算法动图,清晰易懂,零基础入门)
|
6月前
|
搜索推荐 Java
排序算法-冒泡、选择、堆、插入、归并、快速、希尔
排序算法-冒泡、选择、堆、插入、归并、快速、希尔
15 0
|
6天前
|
算法 C语言
C语言数组实例(冒泡算法、猜数字)
C语言数组实例(冒泡算法、猜数字)
19 0
|
9月前
|
算法 JavaScript 搜索推荐
[JavaScript] 常用算法介绍「冒泡算法」
JS中的冒泡排序算法(Bubble Sort)是一种简单而常用的排序算法。它通过多次迭代比较相邻的元素,并根据需要交换它们的位置,使得每一轮迭代都能找到当前数据集中的最大(或最小)值,并将其移至合适的位置。
|
6天前
|
搜索推荐
排序算法之快排,希尔和冒泡
排序算法之快排,希尔和冒泡
|
9月前
|
存储 算法 搜索推荐
数据结构各内部排序算法总结对比及动图演示(插入排序、冒泡和快速排序、选择排序、堆排序、归并排序和基数排序等)2
数据结构各内部排序算法总结对比及动图演示(插入排序、冒泡和快速排序、选择排序、堆排序、归并排序和基数排序等)2
174 0
|
6月前
|
搜索推荐
深入探究常用排序算法:冒泡、插入、选择与快速排序
深入探究常用排序算法:冒泡、插入、选择与快速排序
|
9月前
|
算法 C语言
【冒泡排序】冒泡算法-----数字排序
【冒泡排序】冒泡算法-----数字排序
34 0