java学习day20--排序算法

排序算法

概念

​ 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。

常用的排序算法

冒泡排序

选择排序

快速排序

归并排序

冒泡排序

概念:冒泡排序算法是把较小的元素往前调或者把较大的元素往后调。这种方法主要是通过对相邻两个元素
进行大小的比较,根据比较结果和算法规则对该二元素的位置进行交换,这样逐个依次进行比较和
交换,就能达到排序目的。
核心就是: 相邻比较,位置交换.

动态原理图

代码实现:

package cn.tedu.bubble;
import java.util.Arrays;
import java.util.Random;
//冒泡排序测试
public class Test1_Bubble {
    public static void main(String[] args) {
//        创建一个数组
        int[] arr = new int[10];
        //产生10个随机数
        for (int i = 0; i <arr.length ; i++) {
            arr[i]=new Random().nextInt(100);
        }
        System.out.println(Arrays.toString(arr));

        //进行排序
        for (int i = 0; i < arr.length-1; i++) {//控制轮数
            for (int j = 0; j <arr.length-i-1 ; j++) {//控制比较的次数
                if (arr[j]>arr[j+1]){
                    int temp =arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
            System.out.println("第"+(i+1)+"轮结果:"+Arrays.toString(arr));
        }
    }
}

结果:

[55, 21, 65, 45, 9, 29, 11, 8, 75, 47]//随机产生的数组
第1轮结果:[21, 55, 45, 9, 29, 11, 8, 65, 47, 75]
第2轮结果:[21, 45, 9, 29, 11, 8, 55, 47, 65, 75]
第3轮结果:[21, 9, 29, 11, 8, 45, 47, 55, 65, 75]
第4轮结果:[9, 21, 11, 8, 29, 45, 47, 55, 65, 75]
第5轮结果:[9, 11, 8, 21, 29, 45, 47, 55, 65, 75]
第6轮结果:[9, 8, 11, 21, 29, 45, 47, 55, 65, 75]
第7轮结果:[8, 9, 11, 21, 29, 45, 47, 55, 65, 75]
第8轮结果:[8, 9, 11, 21, 29, 45, 47, 55, 65, 75]
第9轮结果:[8, 9, 11, 21, 29, 45, 47, 55, 65, 75]
原文地址:https://www.cnblogs.com/liqbk/p/12971556.html