一步一步搞清排序之冒泡排序(JAVA实现)
2017-03-20 19:30
253 查看
大一C渣渣就讲了的冒泡排序,原理很简单易懂,最近复习各种排序算法,就从冒泡开始吧~~
基本原理:以升序为例子,同过比较不断的将最小的元素往上移,最早确定的是array[0]的数据,接下来再比较剩下的 n-1 个数据,确定array[1]的数据,以此类推…
选择开始比较数据的方式:
可以有两个方向,第一个,由上至下,选定除已确定位置数据的下一位置,由该位置开始向后进行比较,遇到比其小的数据便交换两个数据的位置,直到遍历完剩下的数据为止(注:始终与选定位置的数据进行比较),但是这样的方式存在一个问题,可能较小的数据会在比较中被交换到很后面的位置。
解决办法,就是我们的第二种方法,由下至上选择数据开始比较,这样能保证较小的数据是不断向上移动位置的,就像泡泡一点一点的往天空上升~~
基本原理:以升序为例子,同过比较不断的将最小的元素往上移,最早确定的是array[0]的数据,接下来再比较剩下的 n-1 个数据,确定array[1]的数据,以此类推…
选择开始比较数据的方式:
可以有两个方向,第一个,由上至下,选定除已确定位置数据的下一位置,由该位置开始向后进行比较,遇到比其小的数据便交换两个数据的位置,直到遍历完剩下的数据为止(注:始终与选定位置的数据进行比较),但是这样的方式存在一个问题,可能较小的数据会在比较中被交换到很后面的位置。
解决办法,就是我们的第二种方法,由下至上选择数据开始比较,这样能保证较小的数据是不断向上移动位置的,就像泡泡一点一点的往天空上升~~
package zj.com.test1.maopao; import java.util.Arrays; import java.util.Scanner; public class Bubble { int temp = 0; public void bSort(int array[]){ for(int i = 0;i<array.length;i++){ for(int j = array.length-1;j>i;j--) { if(array[i]>array[j]) { temp = array[i]; array[i] = array[j]; array[j] = temp; } } } } public static void main(String[] args) { //实例化类 Bubble bubble = new Bubble(); //定义一个数组 int[] a = new int[10]; /*获取键盘输入*/ Scanner scanner = new Scanner(System.in); for(int i = 0;i<10;i++){ a[i] = scanner.nextInt(); } bubble.bSort(a); //按照排序结果输出数组 System.out.print(Arrays.toString(a)); } }
相关文章推荐
- 交换排序之冒泡排序(java实现)
- java 实现 冒泡排序、选择排序、插入排序。
- 冒泡排序、选择排序、插入排序、快速排序算法的时间性能分析(java实现)
- java实现各种基础排序(冒泡排序、快速排序、直接选择排序、堆排序、直接插入排序、归并排序)
- java实现冒泡排序,选择排序,插入排序,快速排序(简洁版)及性能测试
- java实现选择排序和冒泡排序
- java类实现数组的五种排序 冒泡排序、选择排序、插入排序、希尔排序、数组排序
- Java实现冒泡排序和快速排序,选择…
- 我在北京找工作(二):java实现算法<1> 冒泡排序+直接选择排序
- 程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现) .
- 程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)
- 元素排序几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- Java分别实现冒泡排序、插入排序、快速排序、选择排序、交换排序
- 用Java实现 ,冒泡排序与普通排序的区别
- 用JAVA实现排序算法之一:冒泡排序
- 程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)
- 冒泡排序、选择排序、插入排序(Java实现)
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- java实现冒泡排序,选择排序,插入排序,快速排序(简洁版)及性能测试
- 用Java实现 ,冒泡排序与普通排序的区别