java系列:排序

67 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天,点击查看活动详情

排序

排序介绍

排序是将一组数据,以指定的顺序进行排列的过程

排序的分类:

1.内部排序:

指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序法,选择式排序法和插入式排序法)

2.外部排序法:

数据量过大,无法全部加载到内存中,需要借助外部存储进行排序,包括(合并排序法和直接合并排序法)

冒泡排序

冒泡排序的基本思想是:通过对待排序列从后向前(从下标较大的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前向后移动,就像水底下的气泡一样逐渐向上冒

冒泡排序法案例

BubbleSort.java

public class BubbleSort {
    public static void main(String[] args) {
        /*
        总结冒泡排序特点:
        1.一共有五个元素
        2.一共进行了4轮排序,可以看成是外层循环
        3.每一轮排序可以确定一个数的位置,比如第一轮确定最大的数,第二轮确定第二大的数位置
        4.当进行比较时,如果前面的数大于后面的数,就交换
        5.每轮比较在减少
        * */
​
        //化繁为简,先死后活
        int temp = 0;//用于交换的变量
​
        int[] arr = {1,5,3,4,2};
​
​
​
        for (int i = 0; i < arr.length -1; i++){
            int num = 0;
            for (int j = 0; j < 4; j++){
                //如果前面的数大于后面的数,就交换
                if (arr[j] > arr[j + 1]){
​
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                    num += 1;
​
​
​
                }
            }
            if (num == 0){
                System.out.println("已经排序好啦,不需要再继续了!");
                break;
            }
            System.out.println("第" + (i + 1) + "轮排序后");
​
            for (int j = 0; j < arr.length; j++){
                System.out.println(arr[j]);
            }
        }
    }
}

下面举一个具体的案例说明冒泡法,我们将五个无序:24,69,80,57,13使用冒泡排序法将其排成一个从小到大的有序数列

查找

介绍

在java中,我们常用的查找有两种:

1.顺序查找

2.二分查找【二分法,放在算法中讲】