Java常用排序算法冒泡排序与选择排序总结
2017-06-07 22:17
543 查看
概述
排序算法有好多种,也在特殊的场景中,我们经常需要对我们的数据进行排序,这里对经典的排序做一个记录整理。一冒泡排序
原理分析
冒泡排序其实就是对一组数以类似冒泡对形式,进行从大到小或者从小到大的排序,那么什么是冒泡呢?其实也简单,比如有一组数字:3,9,6,2
以上图只比较了第一轮,会冒出一个较大大,依此类推进行比较。
以此比较两个数字,将较较小的数字一个一个冒上来,将相反的较大的数字往下沉,然后内层循环每一轮比较就会冒出来一个最大数字,这样有2层循环即可,外层循环完后,所有的数字就冒完了。
代码实现(java)
public class MPTest { public static void main(String[] args) { int [] numbers={3,9,6,2}; 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; } } } for(int i=0;i<numbers.length;i++){ System.out.println("第"+i+"个数字是:"+numbers[i]); } } }
输出结果是: 第0个数字是:2 第1个数字是:3 第2个数字是:6 第3个数字是:9
二选择排序
原理分析
选择排序其实其实思路也是比较简单的,也是2层循环。主要思路是记录一个最小值,然后内层循环如果有比它小的就跟这个最小值交换位置,这样就能确定第一位最小值,然后第二次循环也是如此,以此类推就能按照由小到大排序。
还是对这几个数字进行排序:3 9 6 2
第一次循环:2 9 6 3
第二次循环:2 3 6 9
代码实现(java)
public class XZTest { public static void main(String[] args) { int[] numbers = {3, 9, 6, 2}; int temp=0; for (int i = 0; i < numbers.length; i++) { int min = i; for (int j = i + 1; j < numbers.length; j++) { if(numbers[j]< numbers[min]){ min=j; } } if(i!=min){ temp=numbers[i]; numbers[i]=numbers[min]; numbers[min]=temp; } } for(int i=0;i<numbers.length;i++){ System.out.println("第"+i+"个数字是:"+numbers[i]); } } }
输出结果是一样的: 第0个数字是:2 第1个数字是:3 第2个数字是:6 第3个数字是:9
相关文章推荐
- 【学习总结】Java中最常用的三大排序算法-冒泡排序、选择排序、插入排序
- 插入排序,选择排序,冒泡排序等常用排序算法(java实现)
- Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- 元素排序几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- 黑马程序员----Java中几种常用排序算法(选择排序、冒泡排序、快速排序)
- 【Java】八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 【Java常用排序算法】选择排序(简单选择排序、堆排序)
- 总结4种常用排序(快排、选择排序、冒泡排序、插入排序)
- 算法分析中最常用的几种排序算法(插入排序、希尔排序、冒泡排序、选择排序、快速排序,归并排序)C 语言版
- 排序算法之冒泡排序、选择排序、直接插入排序(java实现)
- #.java实现排序算法:插入排序、选择排序、冒泡排序
- 几种常用的排序算法:插入排序、冒泡排序、选择排序的算法及C++实现
- JAVA中排序算法(冒泡排序、选择排序、插入排序、快速排序)
- 黑马程序员——java基础排序算法:选择排序、冒泡排序和插入排序
- Java常用排序算法(二):选择排序
- 冒泡排序、插入排序、选择排序、希尔排序、堆排序、归并排序等常用排序算法的比较
- 【常用排序算法】选择排序(Java实现)