冒泡排序
来源:互联网 发布:手机淘宝付款方式 编辑:程序博客网 时间:2024/06/05 12:41
1、算法思想:临近的数字两两进行比较,按照从小到大或从大到小的顺序排列,这样排列一次后最大的或最小的数字被拍到最后。然后继续排序直到倒数第二位时结束。
2、代码示例:
(1)直接冒泡
public void sort(int[] list,int size){
for (int i = 0;i<size-1;i++){ for (int j = 0 ;j<size-1;j++){ int temp ; //boolean flag = false ;//优化的冒泡算法 if (list[j]>list[j+1]){ temp = list[j]; list[j] = list[j+1]; list[j+1] = temp ; //flag = true ; } } //if (flag = true) // break; }}
(2)正宗冒泡
public void sort(int[] list,int size){ for (int i = 1;i<size-1;i++){ for (int j = size-1 ;j>=i;j--){ int temp ; //boolean flag = false ;//优化的冒泡算法 if (list[j-1]>list[j]){ temp = list[j]; list[j] = list[j-1]; list[j-1] = temp ; //flag = true ; } } //if (flag = true) // break; }}
(3)设置标志来优化冒泡算法(最优冒泡)
如(2)注释部分
3、复杂度分析:时间复杂度:外层循环执行N-1次,内层循环最多执行N次,最少执行1次,平均执行(N+1)/2,循环比较(N+1)*(N-1)/2=(N^2-1)/2次。复杂度为O(N^2)。
阅读全文
0 0
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- Libevent源码分析-----超时event的处理
- 解决EventBus中接收方法中无法更新UI的问题
- Spark-Streaming中累加
- Libevent源码分析-----Libevent时间管理
- hdoj1080 Human Gene Functions (DP,map)
- 冒泡排序
- dom4j读取xml文件,用extjs以树的形式显示
- 倍增法求LCA
- Libevent源码分析-----管理超时event
- Spring中自定义JSON注释
- Python高级编程--闭包与装饰器
- 照片成像原理
- 015-Java-006
- Android绘制工具Canvas