逗比讲算法:什么是冒泡排序?
Posted 算法与数学之美
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逗比讲算法:什么是冒泡排序?相关的知识,希望对你有一定的参考价值。
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/999b5b1eba4145ec88074b3b3df013c6.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/08e01be6b72b46a3b9b681345cd166a7.jpg)
本文将在此公众号上通过一个个
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/dd1e6315c39d419f8bd9e96170b0dc6e.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/c384d7c56b5c4991b1b3f82f39e28508.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/efbca3e402d54d819b8e668807758901.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/66867242304941bba27eab7888f218d5.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/5c6a0881447e466ab74878bf0cebbd21.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/3b204b960e074d1babfdb5ac44ec1466.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/89d481b5111e46daa687f1595f76efc3.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/6408b49c660f462598d91f344ac58538.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/e534947f192e4506adac76fc367041ee.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/6201f52cd60a497c8bec823ac8e0ae4f.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/5109a2fad06f431594dab170dc2069bc.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/94d39b73cc8847fa8580b3088d32dc31.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/4ec39035ba124451824337f96df6e62e.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/c8aa8ce9e2c44bd7b017d9a9fc959939.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/de5cd00e3a8441b284b87fed8bee930d.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/cf38a89c56a043199bf369ebd49861f2.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/42664c078bd54af1b0ed43e58b9c23ef.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/982d8db883e141a88131090d54a66e92.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/44f7ded200c04545a547bc4cf4ed5cb6.jpg)
public void bubbleSort(int[] list) {
int temp = 0; // 用来交换的临时数
// 要遍历的次数
for (int i = 0; i < list.length - 1; i++) {
// 从后向前依次的比较相邻两个数的大小,遍历一次后,把数组中第i小的数放在第i个位置上
for (int j = list.length - 1; j > i; j--) {
// 比较相邻的元素,如果前面的数大于后面的数,则交换
if (list[j - 1] > list[j]) {
temp = list[j - 1];
list[j - 1] = list[j];
list[j] = temp;
}
}
System.out.format("第 %d 趟: ", i);
printAll(list);
}
}
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/410fc98ce75544798f32546253c7256d.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/d3e2a8a51f644e9380fff10581a62354.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/081b3df480b54a94bc9b31cff6612ba6.jpg)
// 对 bubbleSort 的优化算法
public void bubbleSort_2(int[] list) {
int temp = 0; // 用来交换的临时数
boolean bChange = false; // 交换标志
// 要遍历的次数
for (int i = 0; i < list.length - 1; i++) {
bChange = false;
// 从后向前依次的比较相邻两个数的大小,遍历一次后,把数组中第i小的数放在第i个位置上
for (int j = list.length - 1; j > i; j--) {
// 比较相邻的元素,如果前面的数大于后面的数,则交换
if (list[j - 1] > list[j]) {
temp = list[j - 1];
list[j - 1] = list[j];
list[j] = temp;
bChange = true;
}
}
// 如果标志为false,说明本轮遍历没有交换,已经是有序数列,可以结束排序
if (false == bChange)
break;
System.out.format("第 %d 趟: ", i);
printAll(list);
}
}
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/7d1af9fab5054fe89c6d40770f350d95.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/bec929241bd247edb5f5a45cb759b85b.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/5e2eb1cbf98e4231bf3245e047b8a274.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/296c58654fba43fd85f01c21e53a6db6.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/a0d1b36a9e8d447c8dc4927e31b4af9f.jpg)
![逗比讲算法:什么是冒泡排序?](https://image.cha138.com/20210407/5847679d764341e8acf59a85d389de91.jpg)
————
编辑 ∑Gemini
来源:视学算法
☞
☞
☞
☞
☞
☞
☞
☞
☞
☞
☞
☞
☞
稿件涉及数学、物理、算法、计算机、编程等相关领域,经采用我们将奉上稿酬。
投稿邮箱:math_alg@163.com
以上是关于逗比讲算法:什么是冒泡排序?的主要内容,如果未能解决你的问题,请参考以下文章