开启掘金成长之旅!这是我参与「掘金日新计划 · 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.二分查找【二分法,放在算法中讲】