喝着JAVA看算法_01_排序算法之(1)冒泡排序
2016-11-09 15:53
369 查看
冒泡排序,可以说是最经典的排序算法了,博主毕业那年去各大公司面试,被要求写过多次冒泡排序,现在想想感慨良多~~
输出结果:
第1遍
[27, 41, 66, 30, 25, 90]
第2遍
[27, 41, 30, 25, 66, 90]
第3遍
[27, 30, 25, 41, 66, 90]
第4遍
[27, 25, 30, 41, 66, 90]
第5遍
[25, 27, 30, 41, 66, 90]
1. 思想
在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒,像冒泡一样。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。2. 图示
3. 代码
public static void main(String[] args) { int[] numbers = { 41, 72, 83, 90, 30, 25 }; new Test().bubbleSort(numbers); //System.out.print(Arrays.toString(numbers)); } public int[] bubbleSort(int[] numbers) { int temp = 0; for(int i = 0; i < numbers.length - 1; i++) { for(int j = 0; j < numbers.length - 1 - i; j++) { if(numbers[j] > numbers[j+1]) { temp = numbers[j]; numbers[j] = numbers[j+1]; numbers[j+1] = temp; } } //====测试用===== System.out.println("第" + (i+1) + "遍"); System.out.println(Arrays.toString(numbers)); } return numbers; }
输出结果:
第1遍
[27, 41, 66, 30, 25, 90]
第2遍
[27, 41, 30, 25, 66, 90]
第3遍
[27, 30, 25, 41, 66, 90]
第4遍
[27, 25, 30, 41, 66, 90]
第5遍
[25, 27, 30, 41, 66, 90]
相关文章推荐
- java必须知道的八大种排序算法:冒泡排序、 选择排序、插入排序、快速排序、希尔算法、归并排序算法、基数排序、堆排序算法
- 冒泡排序 Java数据结构与算法
- java排序算法学习(一)--冒泡排序
- 元素排序几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 用Java写算法之一:冒泡排序
- 黑马程序员----Java中几种常用排序算法(选择排序、冒泡排序、快速排序)
- Johnson-trotter 算法,一种高效的全排序算法的java实现
- 几种常见排序算法之Java实现(插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序)
- Java经典算法:冒泡排序
- Java算法排序之--冒泡排序、快速排序
- 我在北京找工作(二):java实现算法<1> 冒泡排序+直接选择排序
- (BubbleSort)冒泡排序与(BinarySearch)二分法查找算法(java)
- java基本算法总结(冒泡排序、选择排序、插入排序)
- 几种常用的排序算法:插入排序、冒泡排序、选择排序的算法及C++实现
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 用JAVA实现排序算法之一:冒泡排序
- 冒泡排序和直接插入算法(java语言)
- 排序算法-对冒泡排序的优化改进算法
- 常见算法:C语言中的排序算法--冒泡排序,选择排序,希尔排序
- 我在北京找工作(二):java实现算法<1> 冒泡排序+直接选择排序