【算法基础】冒泡排序
来源:互联网 发布:淘宝天下传媒诈骗 编辑:程序博客网 时间:2024/06/06 02:01
从数列第一个数字开始,与相邻的后一位数字比较,如果前一位数字比后一位大,则置换它们的位置,一轮下来排到最后的是最大的数字,直到数列完全有序。
要点:
1. 每轮排序最大的数字会被置换到最后,下一轮就不需要再对比这个数字了。因此第一轮需要对比N-1次,第二轮需要N-2次,第X轮只需要对比N-X次。
2. 如果数列在对比到中途某一轮时已经有序,那么即可终止排序了(提高效率)
实现:
static void bubbleSort(int[] array) { //标志位,如果该轮没有元素交换,那么代表数组已经有序,可以停止对比。 boolean isSwap = false; for (int i = array.length - 1; i >= 0; i--) { int a = array[0]; System.out.println("round:" + i); for (int k = 1; k <= i; k++) { if (a > array[k]) {//相邻两位对比 int tmp = array[k]; array[k] = array[k - 1]; array[k - 1] = tmp; isSwap = true; } a = array[k]; } if (!isSwap) //本轮没有交换位置,说明数列已经有序 break; } }
阅读全文
0 0
- 【算法基础】冒泡排序
- 算法基础-冒泡排序
- 基础算法 冒泡排序
- 基础算法 - 冒泡排序
- 基础算法-冒泡排序
- 算法基础--冒泡排序
- 【算法基础】冒泡排序
- 基础算法---冒泡排序法
- 基础算法之冒泡排序
- 算法基础之冒泡排序
- 算法基础1:冒泡排序
- 算法基础之冒泡排序
- 基础算法之 冒泡排序
- 算法基础之排序篇-冒泡排序
- 基础算法之排序(1)--冒泡排序
- 基础算法--排序: 之冒泡排序
- 【基础算法】选择排序与冒泡排序
- Java语言基础-排序算法-冒泡排序
- Java中的设计模式
- java matlab混合编程之返回值Struct类型
- TCP简单介绍
- SVD在推荐系统中的应用详解以及算法推导
- CART决策树分类和回归
- 【算法基础】冒泡排序
- K-Means
- java基础之异常总结
- SVM算法(四)(有监督学习)
- 你是一个优秀的管理者吗?(附测试方法)
- 引用和常量引用
- 大话PCIe:BAR空间和TLP
- Docker容器重启后IP更改问题处理方法
- poj2135