冒泡排序
来源:互联网 发布:docker容器连接数据库 编辑:程序博客网 时间:2024/06/06 03:45
冒泡排序是一种比较简单打排序算法,因为通过交换,每次把最大的值放到最后,像气泡一样冒出来,故而得名.
排序的规则:
数组a[n](n>1)
1.a[0]和a[1]比较,,如果a[0]大于a[1],交换a[0]和a[1]位置,直到a[n-1]和a[n]比较交换,筛选a[n]最大值
2.a[0]和a[1]比较,,如果a[0]大于a[1],交换a[0]和a[1]位置,直到a[n-2]和a[n-1]比较交换,筛选a[n-1]最大值
...
通过筛选,最终得到从小到大的数组
时间复杂度
最小的时间复杂度,假设数组本身就是正序排列,最小比较次数为n-1,移动次数0,所以最小的时间复杂度是O(n)
最大的时间复杂度,假设数组本身是逆序排列,最大比较次数n*(n-1)/2,最大的移动次数3n(n-1)/2,所以最大打时间复杂度是O(n^2)
java 代码实现
public static void sort(int[] a){if((a==null)||(a.length==0)) return;System.out.println("排序原始数组:"+Arrays.toString(a));for(int i=a.length-1;i>0;i--){for(int j=0;j<i;j++) { if(a[j+1]<a[j]){ a[j+1]=a[j+1]^a[j]; a[j] = a[j+1]^a[j]; a[j+1]=a[j+1]^a[j];}}System.out.println("第"+(a.length-i)+"次排序结果:"+Arrays.toString(a));}}
完整代码及测试下载
0 0
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 严重: Servlet.service() for servlet jsp threw exception The Struts dispatcher cannot be found.
- UVA Add All(优先队列)
- 在android中实现iphone时钟app的秒表功能
- android之判断用户手势
- ios检测新版本并更新
- 冒泡排序
- 黑马程序员第七季——多线程机制
- php类似JS中的uriEncode
- UpdateLayeredWindow方式实现异型窗口
- 可变参数与Predicate and问题
- 关于CALayer的学习笔记
- POJ 1979 Red and Black (DFS)
- printf和cout右向左求值
- android ListView和GridView拖拽移位具体实现及拓展