美文网首页
Java常用排序算法冒泡排序与选择排序总结

Java常用排序算法冒泡排序与选择排序总结

作者: 开飞机的老舒克 | 来源:发表于2017-06-07 22:15 被阅读58次

概述

排序算法有好多种,也在特殊的场景中,我们经常需要对我们的数据进行排序,这里对经典的排序做一个记录整理。

一冒泡排序

原理分析

冒泡排序其实就是对一组数以类似冒泡对形式,进行从大到小或者从小到大的排序,那么什么是冒泡呢?
其实也简单,比如有一组数字: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实现各种常用的排序算法,包括:冒泡排序、插入排序、二分排序、选择排序、希尔排序、堆排序、快速排序(两种写法...

  • 常用的排序算法

    常用的排序算法 常用的排序算法插入排序折半插入排序shell 排序冒泡排序选择排序快速排序基数排序归并排序堆排序K...

  • java 实现排序算法之「选择排序」

    java 实现排序算法系列 继冒泡排序算法之后,选择排序终于和大家见面了。为什么冒泡排序之后要说选择排序呢,是因为...

  • python 排序算法

    文章概述 介绍各大常用经典的排序算法和效率,以及python实现常用算法(冒泡排序,选择排序,快速排序,插入排序)...

  • 排序算法

    概述 常用排序算法 冒泡排序 插入排序 选择排序 归并排序 快速排序 冒泡排序 步骤 比较相邻元素,如果前面元素比...

  • 排序算法的实现

    用java对常用内部排序算法的实现。 对冒泡排序,简单选择排序,直接插入排序,希尔排序,归并排序的简单实现(缺少快...

  • iOS算法总结-冒泡排序

    iOS算法总结-冒泡排序 iOS算法总结-冒泡排序

  • 排序算法

    排序算法分类 排序算法常用主要有:冒泡排序法、快速排序法、选择排序法、插入排序法、堆排序法、归并排序法等几种。 ...

  • 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

    图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

网友评论

      本文标题:Java常用排序算法冒泡排序与选择排序总结

      本文链接:https://www.haomeiwen.com/subject/iotafxtx.html