小白排序指冒泡排序
2016-05-15 10:03
274 查看
何为冒泡?即轻的上浮。在这里表现为小的数向前靠拢,大的数向后靠拢(似乎我们从后往前遍历,更能说明问题)。
具体实现过程:
首先,假设有一个n元的数组A,索引分别0,1,2,3.,...n-1。A[n-1]与A[n-2]相比较,将较小的数放在索引为n-2的位置上,即放在靠前的位置上,下一次,A[n-2]与A[n-3]相比较,将较小的数放在索引为n-3的位置上,即放在靠前的位置上,如此下去,数组中的数的最小值就放在了索引为0的位置上。有一个元素归位了,即冒泡冒上去了。重复下去,再从n-1索引位置开始比较。
注意,冒泡排序中,所有的比较都是相邻比较,满足条件即可交换。
注意:外层循环用了n-1次,原因是我们冒泡n-1次,可使n-1个较小的数归位,自然第n个数也归位了。外层循环控制每次归位的元素的位置。
内层循环即为从后往前冒泡所需要的比较的次数。
swap()函数同选择排序。
具体实现过程:
首先,假设有一个n元的数组A,索引分别0,1,2,3.,...n-1。A[n-1]与A[n-2]相比较,将较小的数放在索引为n-2的位置上,即放在靠前的位置上,下一次,A[n-2]与A[n-3]相比较,将较小的数放在索引为n-3的位置上,即放在靠前的位置上,如此下去,数组中的数的最小值就放在了索引为0的位置上。有一个元素归位了,即冒泡冒上去了。重复下去,再从n-1索引位置开始比较。
注意,冒泡排序中,所有的比较都是相邻比较,满足条件即可交换。
public static void bubbleSort(int[] array){ for (int i = 0; i < array.length - 1 ;i++){ for (int j = array.length-1; j > i; j--){ if (array[j-1]>array[j]) swap(array,j-1,j); } } }还是两层循环。
注意:外层循环用了n-1次,原因是我们冒泡n-1次,可使n-1个较小的数归位,自然第n个数也归位了。外层循环控制每次归位的元素的位置。
内层循环即为从后往前冒泡所需要的比较的次数。
swap()函数同选择排序。
相关文章推荐
- Mob- 短信验证使用
- 类
- 蛛网互联,创业项目.留个备份
- JQuery 选择器
- mysql的安装、C++访问mysql数据库、编码设置问题
- QCustomPlot 标记点和文本标签
- iOS真机调试的验证项
- php访问url的四种方式
- javaScript的无new构建,jquery源码对象构建方法
- Nginx日志切割及常用统计脚本
- 基于Struts2+Hibernate的朋友圈留言网站开发的质量属性
- php 设置自动加载某个页面
- Leetcode 30. Substring with Concatenation of All Words
- 2016"百度之星" - 资格赛(Astar Round1) Problem E
- 什么是ionic
- Solution104: Maximum Depth of Binary Tree
- 基于SSH框架的学生选课质量属性分析
- hdu1828 Picture (矩形周长并+扫描线)
- YJX_rxjh_18_3.1.2
- hdu-5680 zxa and set(水题)